Symbol: ioc
arch/parisc/include/asm/pci.h
59
struct ioc *iommu; /* IOMMU this device is under */
arch/parisc/include/asm/ropes.h
86
struct ioc ioc[MAX_IOC];
arch/x86/kernel/msr.c
148
static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg)
arch/x86/kernel/msr.c
155
switch (ioc) {
block/bfq-iosched.c
5564
int ioprio = bic->icq.ioc->ioprio;
block/bfq-iosched.c
5967
if (atomic_read(&bic->icq.ioc->active_ref) == 0 ||
block/bfq-iosched.c
6705
put_io_context(rq->elv.icq->ioc);
block/blk-ioc.c
107
struct io_context *ioc = container_of(work, struct io_context,
block/blk-ioc.c
109
spin_lock_irq(&ioc->lock);
block/blk-ioc.c
111
while (!hlist_empty(&ioc->icq_list)) {
block/blk-ioc.c
112
struct io_cq *icq = hlist_entry(ioc->icq_list.first,
block/blk-ioc.c
124
spin_unlock(&ioc->lock);
block/blk-ioc.c
126
spin_lock(&ioc->lock);
block/blk-ioc.c
135
spin_unlock_irq(&ioc->lock);
block/blk-ioc.c
137
kmem_cache_free(iocontext_cachep, ioc);
block/blk-ioc.c
144
static bool ioc_delay_free(struct io_context *ioc)
block/blk-ioc.c
148
spin_lock_irqsave(&ioc->lock, flags);
block/blk-ioc.c
149
if (!hlist_empty(&ioc->icq_list)) {
block/blk-ioc.c
150
queue_work(system_power_efficient_wq, &ioc->release_work);
block/blk-ioc.c
151
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-ioc.c
154
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-ioc.c
175
spin_lock(&icq->ioc->lock);
block/blk-ioc.c
177
spin_unlock(&icq->ioc->lock);
block/blk-ioc.c
182
static inline void ioc_exit_icqs(struct io_context *ioc)
block/blk-ioc.c
185
static inline bool ioc_delay_free(struct io_context *ioc)
block/blk-ioc.c
198
void put_io_context(struct io_context *ioc)
block/blk-ioc.c
200
BUG_ON(atomic_long_read(&ioc->refcount) <= 0);
block/blk-ioc.c
201
if (atomic_long_dec_and_test(&ioc->refcount) && !ioc_delay_free(ioc))
block/blk-ioc.c
202
kmem_cache_free(iocontext_cachep, ioc);
block/blk-ioc.c
209
struct io_context *ioc;
block/blk-ioc.c
212
ioc = task->io_context;
block/blk-ioc.c
216
if (atomic_dec_and_test(&ioc->active_ref)) {
block/blk-ioc.c
217
ioc_exit_icqs(ioc);
block/blk-ioc.c
218
put_io_context(ioc);
block/blk-ioc.c
224
struct io_context *ioc;
block/blk-ioc.c
226
ioc = kmem_cache_alloc_node(iocontext_cachep, gfp_flags | __GFP_ZERO,
block/blk-ioc.c
228
if (unlikely(!ioc))
block/blk-ioc.c
231
atomic_long_set(&ioc->refcount, 1);
block/blk-ioc.c
232
atomic_set(&ioc->active_ref, 1);
block/blk-ioc.c
234
spin_lock_init(&ioc->lock);
block/blk-ioc.c
235
INIT_RADIX_TREE(&ioc->icq_tree, GFP_ATOMIC);
block/blk-ioc.c
236
INIT_HLIST_HEAD(&ioc->icq_list);
block/blk-ioc.c
237
INIT_WORK(&ioc->release_work, ioc_release_fn);
block/blk-ioc.c
239
ioc->ioprio = IOPRIO_DEFAULT;
block/blk-ioc.c
241
return ioc;
block/blk-ioc.c
264
struct io_context *ioc;
block/blk-ioc.c
268
ioc = alloc_io_context(GFP_ATOMIC, NUMA_NO_NODE);
block/blk-ioc.c
269
if (!ioc)
block/blk-ioc.c
274
kmem_cache_free(iocontext_cachep, ioc);
block/blk-ioc.c
278
kmem_cache_free(iocontext_cachep, ioc);
block/blk-ioc.c
280
task->io_context = ioc;
block/blk-ioc.c
29
static void get_io_context(struct io_context *ioc)
block/blk-ioc.c
291
struct io_context *ioc = current->io_context;
block/blk-ioc.c
297
atomic_inc(&ioc->active_ref);
block/blk-ioc.c
298
tsk->io_context = ioc;
block/blk-ioc.c
299
} else if (ioprio_valid(ioc->ioprio)) {
block/blk-ioc.c
303
tsk->io_context->ioprio = ioc->ioprio;
block/blk-ioc.c
31
BUG_ON(atomic_long_read(&ioc->refcount) <= 0);
block/blk-ioc.c
32
atomic_long_inc(&ioc->refcount);
block/blk-ioc.c
320
struct io_context *ioc = current->io_context;
block/blk-ioc.c
330
icq = rcu_dereference(ioc->icq_hint);
block/blk-ioc.c
334
icq = radix_tree_lookup(&ioc->icq_tree, q->id);
block/blk-ioc.c
336
rcu_assign_pointer(ioc->icq_hint, icq); /* allowed to race */
block/blk-ioc.c
357
struct io_context *ioc = current->io_context;
block/blk-ioc.c
372
icq->ioc = ioc;
block/blk-ioc.c
379
spin_lock(&ioc->lock);
block/blk-ioc.c
381
if (likely(!radix_tree_insert(&ioc->icq_tree, q->id, icq))) {
block/blk-ioc.c
382
hlist_add_head(&icq->ioc_node, &ioc->icq_list);
block/blk-ioc.c
393
spin_unlock(&ioc->lock);
block/blk-ioc.c
401
struct io_context *ioc = current->io_context;
block/blk-ioc.c
404
if (unlikely(!ioc)) {
block/blk-ioc.c
405
ioc = alloc_io_context(GFP_ATOMIC, q->node);
block/blk-ioc.c
406
if (!ioc)
block/blk-ioc.c
411
kmem_cache_free(iocontext_cachep, ioc);
block/blk-ioc.c
412
ioc = current->io_context;
block/blk-ioc.c
414
current->io_context = ioc;
block/blk-ioc.c
417
get_io_context(ioc);
block/blk-ioc.c
420
get_io_context(ioc);
block/blk-ioc.c
427
put_io_context(ioc);
block/blk-ioc.c
52
static void ioc_exit_icqs(struct io_context *ioc)
block/blk-ioc.c
56
spin_lock_irq(&ioc->lock);
block/blk-ioc.c
57
hlist_for_each_entry(icq, &ioc->icq_list, ioc_node)
block/blk-ioc.c
59
spin_unlock_irq(&ioc->lock);
block/blk-ioc.c
68
struct io_context *ioc = icq->ioc;
block/blk-ioc.c
72
lockdep_assert_held(&ioc->lock);
block/blk-ioc.c
78
radix_tree_delete(&ioc->icq_tree, icq->q->id);
block/blk-ioc.c
87
if (rcu_access_pointer(ioc->icq_hint) == icq)
block/blk-ioc.c
88
rcu_assign_pointer(ioc->icq_hint, NULL);
block/blk-iocost.c
1000
if (!ioc->busy_level || (ioc->busy_level < 0 && nr_lagging)) {
block/blk-iocost.c
1001
if (ioc->busy_level != prev_busy_level || nr_lagging)
block/blk-iocost.c
1002
trace_iocost_ioc_vrate_adj(ioc, vrate,
block/blk-iocost.c
1021
int idx = min_t(int, abs(ioc->busy_level),
block/blk-iocost.c
1025
if (ioc->busy_level > 0)
block/blk-iocost.c
1034
trace_iocost_ioc_vrate_adj(ioc, vrate, missed_ppm, rq_wait_pct,
block/blk-iocost.c
1037
ioc->vtime_base_rate = vrate;
block/blk-iocost.c
1038
ioc_refresh_margins(ioc);
block/blk-iocost.c
1042
static void ioc_now(struct ioc *ioc, struct ioc_now *now)
block/blk-iocost.c
1049
vrate = atomic64_read(&ioc->vtime_rate);
block/blk-iocost.c
1060
seq = read_seqcount_begin(&ioc->period_seqcount);
block/blk-iocost.c
1061
now->vnow = ioc->period_at_vtime +
block/blk-iocost.c
1062
(now->now - ioc->period_at) * vrate;
block/blk-iocost.c
1063
} while (read_seqcount_retry(&ioc->period_seqcount, seq));
block/blk-iocost.c
1066
static void ioc_start_period(struct ioc *ioc, struct ioc_now *now)
block/blk-iocost.c
1068
WARN_ON_ONCE(ioc->running != IOC_RUNNING);
block/blk-iocost.c
1070
write_seqcount_begin(&ioc->period_seqcount);
block/blk-iocost.c
1071
ioc->period_at = now->now;
block/blk-iocost.c
1072
ioc->period_at_vtime = now->vnow;
block/blk-iocost.c
1073
write_seqcount_end(&ioc->period_seqcount);
block/blk-iocost.c
1075
ioc->timer.expires = jiffies + usecs_to_jiffies(ioc->period_us);
block/blk-iocost.c
1076
add_timer(&ioc->timer);
block/blk-iocost.c
1087
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1090
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
1151
ioc->weights_updated = true;
block/blk-iocost.c
1154
static void commit_weights(struct ioc *ioc)
block/blk-iocost.c
1156
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
1158
if (ioc->weights_updated) {
block/blk-iocost.c
1161
atomic_inc(&ioc->hweight_gen);
block/blk-iocost.c
1162
ioc->weights_updated = false;
block/blk-iocost.c
1170
commit_weights(iocg->ioc);
block/blk-iocost.c
1175
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1181
ioc_gen = atomic_read(&ioc->hweight_gen);
block/blk-iocost.c
1238
lockdep_assert_held(&iocg->ioc->lock);
block/blk-iocost.c
1255
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1260
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
1270
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1280
ioc_now(ioc, now);
block/blk-iocost.c
1281
cur_period = atomic64_read(&ioc->cur_period);
block/blk-iocost.c
1291
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
1293
ioc_now(ioc, now);
block/blk-iocost.c
1296
cur_period = atomic64_read(&ioc->cur_period);
block/blk-iocost.c
1314
vtarget = now->vnow - ioc->margins.target;
block/blk-iocost.c
1326
iocg->hweight_gen = atomic_read(&ioc->hweight_gen) - 1;
block/blk-iocost.c
1327
list_add(&iocg->active_list, &ioc->active_iocgs);
block/blk-iocost.c
1337
if (ioc->running == IOC_IDLE) {
block/blk-iocost.c
1338
ioc->running = IOC_RUNNING;
block/blk-iocost.c
1339
ioc->dfgv_period_at = now->now;
block/blk-iocost.c
1340
ioc->dfgv_period_rem = 0;
block/blk-iocost.c
1341
ioc_start_period(ioc, now);
block/blk-iocost.c
1345
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
1349
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
1355
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1383
ioc->period_us * ioc->vtime_base_rate);
block/blk-iocost.c
1423
lockdep_assert_held(&iocg->ioc->lock);
block/blk-iocost.c
1446
lockdep_assert_held(&iocg->ioc->lock);
block/blk-iocost.c
1503
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1520
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
1569
DIV64_U64_ROUND_UP(vshortage, ioc->vtime_base_rate) *
block/blk-iocost.c
1571
expires += ioc->timer_slack_ns;
block/blk-iocost.c
1576
abs(oexpires - expires) <= ioc->timer_slack_ns)
block/blk-iocost.c
1580
ioc->timer_slack_ns, HRTIMER_MODE_ABS);
block/blk-iocost.c
1590
ioc_now(iocg->ioc, &now);
block/blk-iocost.c
1599
static void ioc_lat_stat(struct ioc *ioc, u32 *missed_ppm_ar, u32 *rq_wait_pct_p)
block/blk-iocost.c
1607
struct ioc_pcpu_stat *stat = per_cpu_ptr(ioc->pcpu_stat, cpu);
block/blk-iocost.c
1635
ioc->period_us * NSEC_PER_USEC);
block/blk-iocost.c
1641
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1645
atomic64_read(&ioc->cur_period))
block/blk-iocost.c
1705
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1710
lockdep_assert_held(&iocg->ioc->lock);
block/blk-iocost.c
1720
iocg->usage_delta_us = div64_u64(vusage_delta, ioc->vtime_base_rate);
block/blk-iocost.c
1753
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
1763
time_after64(vtime, now->vnow - ioc->margins.min))
block/blk-iocost.c
1767
excess = now->vnow - vtime - ioc->margins.target;
block/blk-iocost.c
1772
ioc->vtime_err -= div64_u64(excess * old_hwi, WEIGHT_ONE);
block/blk-iocost.c
1792
now->vnow - ioc->period_at_vtime);
block/blk-iocost.c
2082
static void ioc_forgive_debts(struct ioc *ioc, u64 usage_us_sum, int nr_debtors,
block/blk-iocost.c
2090
ioc->dfgv_period_at = now->now;
block/blk-iocost.c
2091
ioc->dfgv_period_rem = 0;
block/blk-iocost.c
2092
ioc->dfgv_usage_us_sum = 0;
block/blk-iocost.c
2102
if (ioc->busy_level > 0)
block/blk-iocost.c
2103
usage_us_sum = max_t(u64, usage_us_sum, ioc->period_us);
block/blk-iocost.c
2105
ioc->dfgv_usage_us_sum += usage_us_sum;
block/blk-iocost.c
2106
if (time_before64(now->now, ioc->dfgv_period_at + DFGV_PERIOD))
block/blk-iocost.c
2113
dur = now->now - ioc->dfgv_period_at;
block/blk-iocost.c
2114
usage_pct = div64_u64(100 * ioc->dfgv_usage_us_sum, dur);
block/blk-iocost.c
2116
ioc->dfgv_period_at = now->now;
block/blk-iocost.c
2117
ioc->dfgv_usage_us_sum = 0;
block/blk-iocost.c
2121
ioc->dfgv_period_rem = 0;
block/blk-iocost.c
2134
nr_cycles = dur + ioc->dfgv_period_rem;
block/blk-iocost.c
2135
ioc->dfgv_period_rem = do_div(nr_cycles, DFGV_PERIOD);
block/blk-iocost.c
2137
list_for_each_entry(iocg, &ioc->active_iocgs, active_list) {
block/blk-iocost.c
2175
static int ioc_check_iocgs(struct ioc *ioc, struct ioc_now *now)
block/blk-iocost.c
2180
list_for_each_entry_safe(iocg, tiocg, &ioc->active_iocgs, active_list) {
block/blk-iocost.c
2220
excess = now->vnow - vtime - ioc->margins.target;
block/blk-iocost.c
2225
ioc->vtime_err -= div64_u64(excess * old_hwi,
block/blk-iocost.c
2231
atomic64_read(&ioc->cur_period), vtime);
block/blk-iocost.c
2239
commit_weights(ioc);
block/blk-iocost.c
2245
struct ioc *ioc = container_of(timer, struct ioc, timer);
block/blk-iocost.c
2258
ioc_lat_stat(ioc, missed_ppm, &rq_wait_pct);
block/blk-iocost.c
2261
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
2263
ppm_rthr = MILLION - ioc->params.qos[QOS_RPPM];
block/blk-iocost.c
2264
ppm_wthr = MILLION - ioc->params.qos[QOS_WPPM];
block/blk-iocost.c
2265
ioc_now(ioc, &now);
block/blk-iocost.c
2267
period_vtime = now.vnow - ioc->period_at_vtime;
block/blk-iocost.c
2269
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
2273
nr_debtors = ioc_check_iocgs(ioc, &now);
block/blk-iocost.c
2279
iocg_flush_stat(&ioc->active_iocgs, &now);
block/blk-iocost.c
2282
list_for_each_entry(iocg, &ioc->active_iocgs, active_list) {
block/blk-iocost.c
2319
time_before64(vtime, now.vnow - ioc->margins.low))) {
block/blk-iocost.c
2326
ioc->vtime_base_rate);
block/blk-iocost.c
2332
if (time_after64(iocg->activated_at, ioc->period_at))
block/blk-iocost.c
2335
usage_dur = max_t(u64, now.now - ioc->period_at, 1);
block/blk-iocost.c
2387
commit_weights(ioc);
block/blk-iocost.c
2399
prev_busy_level = ioc->busy_level;
block/blk-iocost.c
2404
ioc->busy_level = max(ioc->busy_level, 0);
block/blk-iocost.c
2405
ioc->busy_level++;
block/blk-iocost.c
2415
ioc->busy_level = min(ioc->busy_level, 0);
block/blk-iocost.c
2422
ioc->busy_level--;
block/blk-iocost.c
2430
ioc->busy_level = 0;
block/blk-iocost.c
2434
ioc->busy_level = 0;
block/blk-iocost.c
2437
ioc->busy_level = clamp(ioc->busy_level, -1000, 1000);
block/blk-iocost.c
2439
ioc_adjust_base_vrate(ioc, rq_wait_pct, nr_lagging, nr_shortages,
block/blk-iocost.c
2442
ioc_refresh_params(ioc, false);
block/blk-iocost.c
2444
ioc_forgive_debts(ioc, usage_us_sum, nr_debtors, &now);
block/blk-iocost.c
2450
atomic64_inc(&ioc->cur_period);
block/blk-iocost.c
2452
if (ioc->running != IOC_STOP) {
block/blk-iocost.c
2453
if (!list_empty(&ioc->active_iocgs)) {
block/blk-iocost.c
2454
ioc_start_period(ioc, &now);
block/blk-iocost.c
2456
ioc->busy_level = 0;
block/blk-iocost.c
2457
ioc->vtime_err = 0;
block/blk-iocost.c
2458
ioc->running = IOC_IDLE;
block/blk-iocost.c
2461
ioc_refresh_vrate(ioc, &now);
block/blk-iocost.c
2464
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
2470
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
2471
struct ioc_margins *margins = &ioc->margins;
block/blk-iocost.c
2495
spin_lock_irqsave(&ioc->lock, flags);
block/blk-iocost.c
2499
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-iocost.c
2520
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-iocost.c
2531
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
2543
coef_seqio = ioc->params.lcoefs[LCOEF_RSEQIO];
block/blk-iocost.c
2544
coef_randio = ioc->params.lcoefs[LCOEF_RRANDIO];
block/blk-iocost.c
2545
coef_page = ioc->params.lcoefs[LCOEF_RPAGE];
block/blk-iocost.c
2548
coef_seqio = ioc->params.lcoefs[LCOEF_WSEQIO];
block/blk-iocost.c
2549
coef_randio = ioc->params.lcoefs[LCOEF_WRANDIO];
block/blk-iocost.c
2550
coef_page = ioc->params.lcoefs[LCOEF_WPAGE];
block/blk-iocost.c
2581
static void calc_size_vtime_cost_builtin(struct request *rq, struct ioc *ioc,
block/blk-iocost.c
2588
*costp = pages * ioc->params.lcoefs[LCOEF_RPAGE];
block/blk-iocost.c
2591
*costp = pages * ioc->params.lcoefs[LCOEF_WPAGE];
block/blk-iocost.c
2598
static u64 calc_size_vtime_cost(struct request *rq, struct ioc *ioc)
block/blk-iocost.c
2602
calc_size_vtime_cost_builtin(rq, ioc, &cost);
block/blk-iocost.c
2609
struct ioc *ioc = rqos_to_ioc(rqos);
block/blk-iocost.c
2618
if (!ioc->enabled || !iocg || !iocg->level)
block/blk-iocost.c
2744
struct ioc *ioc = rqos_to_ioc(rqos);
block/blk-iocost.c
2751
if (!ioc->enabled || !iocg || !iocg->level)
block/blk-iocost.c
2758
ioc_now(ioc, &now);
block/blk-iocost.c
2783
spin_lock_irqsave(&ioc->lock, flags);
block/blk-iocost.c
2796
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-iocost.c
2809
struct ioc *ioc = rqos_to_ioc(rqos);
block/blk-iocost.c
2814
if (!ioc->enabled || !rq->alloc_time_ns || !rq->start_time_ns)
block/blk-iocost.c
2832
size_nsec = div64_u64(calc_size_vtime_cost(rq, ioc), VTIME_PER_NSEC);
block/blk-iocost.c
2834
ccs = get_cpu_ptr(ioc->pcpu_stat);
block/blk-iocost.c
2837
on_q_ns - size_nsec <= ioc->params.qos[pidx] * NSEC_PER_USEC)
block/blk-iocost.c
2849
struct ioc *ioc = rqos_to_ioc(rqos);
block/blk-iocost.c
2851
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
2852
ioc_refresh_params(ioc, false);
block/blk-iocost.c
2853
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
2858
struct ioc *ioc = rqos_to_ioc(rqos);
block/blk-iocost.c
2862
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
2863
ioc->running = IOC_STOP;
block/blk-iocost.c
2864
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
2866
timer_shutdown_sync(&ioc->timer);
block/blk-iocost.c
2867
free_percpu(ioc->pcpu_stat);
block/blk-iocost.c
2868
kfree(ioc);
block/blk-iocost.c
2882
struct ioc *ioc;
block/blk-iocost.c
2885
ioc = kzalloc_obj(*ioc);
block/blk-iocost.c
2886
if (!ioc)
block/blk-iocost.c
2889
ioc->pcpu_stat = alloc_percpu(struct ioc_pcpu_stat);
block/blk-iocost.c
2890
if (!ioc->pcpu_stat) {
block/blk-iocost.c
2891
kfree(ioc);
block/blk-iocost.c
2896
struct ioc_pcpu_stat *ccs = per_cpu_ptr(ioc->pcpu_stat, cpu);
block/blk-iocost.c
2905
spin_lock_init(&ioc->lock);
block/blk-iocost.c
2906
timer_setup(&ioc->timer, ioc_timer_fn, 0);
block/blk-iocost.c
2907
INIT_LIST_HEAD(&ioc->active_iocgs);
block/blk-iocost.c
2909
ioc->running = IOC_IDLE;
block/blk-iocost.c
2910
ioc->vtime_base_rate = VTIME_PER_USEC;
block/blk-iocost.c
2911
atomic64_set(&ioc->vtime_rate, VTIME_PER_USEC);
block/blk-iocost.c
2912
seqcount_spinlock_init(&ioc->period_seqcount, &ioc->lock);
block/blk-iocost.c
2913
ioc->period_at = ktime_to_us(blk_time_get());
block/blk-iocost.c
2914
atomic64_set(&ioc->cur_period, 0);
block/blk-iocost.c
2915
atomic_set(&ioc->hweight_gen, 0);
block/blk-iocost.c
2917
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
2918
ioc->autop_idx = AUTOP_INVALID;
block/blk-iocost.c
2919
ioc_refresh_params_disk(ioc, true, disk);
block/blk-iocost.c
2920
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
2928
ret = rq_qos_add(&ioc->rqos, disk, RQ_QOS_COST, &ioc_rqos_ops);
block/blk-iocost.c
2938
rq_qos_del(&ioc->rqos);
block/blk-iocost.c
2940
free_percpu(ioc->pcpu_stat);
block/blk-iocost.c
2941
kfree(ioc);
block/blk-iocost.c
2986
struct ioc *ioc = q_to_ioc(blkg->q);
block/blk-iocost.c
2991
ioc_now(ioc, &now);
block/blk-iocost.c
2993
iocg->ioc = ioc;
block/blk-iocost.c
2996
atomic64_set(&iocg->active_period, atomic64_read(&ioc->cur_period));
block/blk-iocost.c
3013
spin_lock_irqsave(&ioc->lock, flags);
block/blk-iocost.c
3015
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-iocost.c
3021
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
3024
if (ioc) {
block/blk-iocost.c
3025
spin_lock_irqsave(&ioc->lock, flags);
block/blk-iocost.c
3030
ioc_now(ioc, &now);
block/blk-iocost.c
3038
spin_unlock_irqrestore(&ioc->lock, flags);
block/blk-iocost.c
3049
struct ioc *ioc = iocg->ioc;
block/blk-iocost.c
3051
if (!ioc->enabled)
block/blk-iocost.c
3056
ioc->vtime_base_rate * 10000,
block/blk-iocost.c
3119
spin_lock(&iocg->ioc->lock);
block/blk-iocost.c
3120
ioc_now(iocg->ioc, &now);
block/blk-iocost.c
3122
spin_unlock(&iocg->ioc->lock);
block/blk-iocost.c
3147
spin_lock(&iocg->ioc->lock);
block/blk-iocost.c
3149
ioc_now(iocg->ioc, &now);
block/blk-iocost.c
3151
spin_unlock(&iocg->ioc->lock);
block/blk-iocost.c
3167
struct ioc *ioc = pd_to_iocg(pd)->ioc;
block/blk-iocost.c
3172
spin_lock(&ioc->lock);
block/blk-iocost.c
3174
dname, ioc->enabled, ioc->user_qos_params ? "user" : "auto",
block/blk-iocost.c
3175
ioc->params.qos[QOS_RPPM] / 10000,
block/blk-iocost.c
3176
ioc->params.qos[QOS_RPPM] % 10000 / 100,
block/blk-iocost.c
3177
ioc->params.qos[QOS_RLAT],
block/blk-iocost.c
3178
ioc->params.qos[QOS_WPPM] / 10000,
block/blk-iocost.c
3179
ioc->params.qos[QOS_WPPM] % 10000 / 100,
block/blk-iocost.c
3180
ioc->params.qos[QOS_WLAT],
block/blk-iocost.c
3181
ioc->params.qos[QOS_MIN] / 10000,
block/blk-iocost.c
3182
ioc->params.qos[QOS_MIN] % 10000 / 100,
block/blk-iocost.c
3183
ioc->params.qos[QOS_MAX] / 10000,
block/blk-iocost.c
3184
ioc->params.qos[QOS_MAX] % 10000 / 100);
block/blk-iocost.c
3185
spin_unlock(&ioc->lock);
block/blk-iocost.c
3219
struct ioc *ioc;
block/blk-iocost.c
3241
ioc = q_to_ioc(disk->queue);
block/blk-iocost.c
3242
if (!ioc) {
block/blk-iocost.c
3246
ioc = q_to_ioc(disk->queue);
block/blk-iocost.c
3251
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
3252
memcpy(qos, ioc->params.qos, sizeof(qos));
block/blk-iocost.c
3253
enable = ioc->enabled;
block/blk-iocost.c
3254
user = ioc->user_qos_params;
block/blk-iocost.c
3322
if (enable && !ioc->enabled) {
block/blk-iocost.c
3325
ioc->enabled = true;
block/blk-iocost.c
3326
} else if (!enable && ioc->enabled) {
block/blk-iocost.c
3329
ioc->enabled = false;
block/blk-iocost.c
3333
memcpy(ioc->params.qos, qos, sizeof(qos));
block/blk-iocost.c
3334
ioc->user_qos_params = true;
block/blk-iocost.c
3336
ioc->user_qos_params = false;
block/blk-iocost.c
3339
ioc_refresh_params(ioc, true);
block/blk-iocost.c
3340
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
3352
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
3364
struct ioc *ioc = pd_to_iocg(pd)->ioc;
block/blk-iocost.c
3365
u64 *u = ioc->params.i_lcoefs;
block/blk-iocost.c
3370
spin_lock(&ioc->lock);
block/blk-iocost.c
3374
dname, ioc->user_cost_model ? "user" : "auto",
block/blk-iocost.c
3377
spin_unlock(&ioc->lock);
block/blk-iocost.c
3412
struct ioc *ioc;
block/blk-iocost.c
3431
ioc = q_to_ioc(q);
block/blk-iocost.c
3432
if (!ioc) {
block/blk-iocost.c
3436
ioc = q_to_ioc(q);
block/blk-iocost.c
3442
spin_lock_irq(&ioc->lock);
block/blk-iocost.c
3443
memcpy(u, ioc->params.i_lcoefs, sizeof(u));
block/blk-iocost.c
3444
user = ioc->user_cost_model;
block/blk-iocost.c
3482
memcpy(ioc->params.i_lcoefs, u, sizeof(u));
block/blk-iocost.c
3483
ioc->user_cost_model = true;
block/blk-iocost.c
3485
ioc->user_cost_model = false;
block/blk-iocost.c
3487
ioc_refresh_params(ioc, true);
block/blk-iocost.c
3488
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
3497
spin_unlock_irq(&ioc->lock);
block/blk-iocost.c
464
struct ioc *ioc;
block/blk-iocost.c
660
static struct ioc *rqos_to_ioc(struct rq_qos *rqos)
block/blk-iocost.c
662
return container_of(rqos, struct ioc, rqos);
block/blk-iocost.c
665
static struct ioc *q_to_ioc(struct request_queue *q)
block/blk-iocost.c
670
static const char __maybe_unused *ioc_name(struct ioc *ioc)
block/blk-iocost.c
672
struct gendisk *disk = ioc->rqos.disk;
block/blk-iocost.c
733
spin_lock_irqsave(&iocg->ioc->lock, *flags);
block/blk-iocost.c
744
spin_unlock_irqrestore(&iocg->ioc->lock, *flags);
block/blk-iocost.c
753
static void ioc_refresh_margins(struct ioc *ioc)
block/blk-iocost.c
755
struct ioc_margins *margins = &ioc->margins;
block/blk-iocost.c
756
u32 period_us = ioc->period_us;
block/blk-iocost.c
757
u64 vrate = ioc->vtime_base_rate;
block/blk-iocost.c
765
static void ioc_refresh_period_us(struct ioc *ioc)
block/blk-iocost.c
769
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
772
if (ioc->params.qos[QOS_RLAT] >= ioc->params.qos[QOS_WLAT]) {
block/blk-iocost.c
773
ppm = ioc->params.qos[QOS_RPPM];
block/blk-iocost.c
774
lat = ioc->params.qos[QOS_RLAT];
block/blk-iocost.c
776
ppm = ioc->params.qos[QOS_WPPM];
block/blk-iocost.c
777
lat = ioc->params.qos[QOS_WLAT];
block/blk-iocost.c
796
ioc->period_us = period_us;
block/blk-iocost.c
797
ioc->timer_slack_ns = div64_u64(
block/blk-iocost.c
800
ioc_refresh_margins(ioc);
block/blk-iocost.c
807
static int ioc_autop_idx(struct ioc *ioc, struct gendisk *disk)
block/blk-iocost.c
809
int idx = ioc->autop_idx;
block/blk-iocost.c
827
if (ioc->user_qos_params || ioc->user_cost_model)
block/blk-iocost.c
831
vrate_pct = div64_u64(ioc->vtime_base_rate * 100, VTIME_PER_USEC);
block/blk-iocost.c
835
if (!ioc->autop_too_fast_at)
block/blk-iocost.c
836
ioc->autop_too_fast_at = now_ns;
block/blk-iocost.c
837
if (now_ns - ioc->autop_too_fast_at >= AUTOP_CYCLE_NSEC)
block/blk-iocost.c
840
ioc->autop_too_fast_at = 0;
block/blk-iocost.c
844
if (!ioc->autop_too_slow_at)
block/blk-iocost.c
845
ioc->autop_too_slow_at = now_ns;
block/blk-iocost.c
846
if (now_ns - ioc->autop_too_slow_at >= AUTOP_CYCLE_NSEC)
block/blk-iocost.c
849
ioc->autop_too_slow_at = 0;
block/blk-iocost.c
897
static void ioc_refresh_lcoefs(struct ioc *ioc)
block/blk-iocost.c
899
u64 *u = ioc->params.i_lcoefs;
block/blk-iocost.c
900
u64 *c = ioc->params.lcoefs;
block/blk-iocost.c
912
static bool ioc_refresh_params_disk(struct ioc *ioc, bool force,
block/blk-iocost.c
918
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
920
idx = ioc_autop_idx(ioc, disk);
block/blk-iocost.c
923
if (idx == ioc->autop_idx && !force)
block/blk-iocost.c
926
if (idx != ioc->autop_idx) {
block/blk-iocost.c
927
atomic64_set(&ioc->vtime_rate, VTIME_PER_USEC);
block/blk-iocost.c
928
ioc->vtime_base_rate = VTIME_PER_USEC;
block/blk-iocost.c
931
ioc->autop_idx = idx;
block/blk-iocost.c
932
ioc->autop_too_fast_at = 0;
block/blk-iocost.c
933
ioc->autop_too_slow_at = 0;
block/blk-iocost.c
935
if (!ioc->user_qos_params)
block/blk-iocost.c
936
memcpy(ioc->params.qos, p->qos, sizeof(p->qos));
block/blk-iocost.c
937
if (!ioc->user_cost_model)
block/blk-iocost.c
938
memcpy(ioc->params.i_lcoefs, p->i_lcoefs, sizeof(p->i_lcoefs));
block/blk-iocost.c
940
ioc_refresh_period_us(ioc);
block/blk-iocost.c
941
ioc_refresh_lcoefs(ioc);
block/blk-iocost.c
943
ioc->vrate_min = DIV64_U64_ROUND_UP((u64)ioc->params.qos[QOS_MIN] *
block/blk-iocost.c
945
ioc->vrate_max = DIV64_U64_ROUND_UP((u64)ioc->params.qos[QOS_MAX] *
block/blk-iocost.c
951
static bool ioc_refresh_params(struct ioc *ioc, bool force)
block/blk-iocost.c
953
return ioc_refresh_params_disk(ioc, force, ioc->rqos.disk);
block/blk-iocost.c
963
static void ioc_refresh_vrate(struct ioc *ioc, struct ioc_now *now)
block/blk-iocost.c
965
s64 pleft = ioc->period_at + ioc->period_us - now->now;
block/blk-iocost.c
966
s64 vperiod = ioc->period_us * ioc->vtime_base_rate;
block/blk-iocost.c
969
lockdep_assert_held(&ioc->lock);
block/blk-iocost.c
980
vcomp = -div64_s64(ioc->vtime_err, pleft);
block/blk-iocost.c
981
vcomp_min = -(ioc->vtime_base_rate >> 1);
block/blk-iocost.c
982
vcomp_max = ioc->vtime_base_rate;
block/blk-iocost.c
985
ioc->vtime_err += vcomp * pleft;
block/blk-iocost.c
987
atomic64_set(&ioc->vtime_rate, ioc->vtime_base_rate + vcomp);
block/blk-iocost.c
990
ioc->vtime_err = clamp(ioc->vtime_err, -vperiod, vperiod);
block/blk-iocost.c
993
static void ioc_adjust_base_vrate(struct ioc *ioc, u32 rq_wait_pct,
block/blk-iocost.c
997
u64 vrate = ioc->vtime_base_rate;
block/blk-iocost.c
998
u64 vrate_min = ioc->vrate_min, vrate_max = ioc->vrate_max;
drivers/char/agp/parisc-agp.c
424
parisc_agp_setup(sba_list->ioc[0].ioc_hpa, lbadev->hba.base_addr);
drivers/crypto/ccp/ccp-dev-v3.c
97
if (op->ioc || !cmd_q->free_slots)
drivers/crypto/ccp/ccp-dev-v5.c
158
#define CCP5_CMD_IOC(p) (CCP5_CMD_DW0(p).ioc)
drivers/crypto/ccp/ccp-dev.h
535
u32 ioc;
drivers/crypto/ccp/ccp-dev.h
581
unsigned int ioc:1;
drivers/gpu/drm/v3d/v3d_sched.c
367
V3D_WRITE(V3D_V7_TFU_IOC, job->args.v71.ioc);
drivers/message/fusion/mptbase.c
1003
DBG_DUMP_PUT_MSG_FRAME(ioc, (u32 *)mf);
drivers/message/fusion/mptbase.c
1005
mf_dma_addr = (ioc->req_frames_low_dma + req_offset);
drivers/message/fusion/mptbase.c
1006
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mf_dma_addr=%x req_idx=%d\n",
drivers/message/fusion/mptbase.c
1007
ioc->name, mf_dma_addr, req_idx));
drivers/message/fusion/mptbase.c
1008
CHIPREG_WRITE32(&ioc->chip->RequestHiPriFifo, mf_dma_addr);
drivers/message/fusion/mptbase.c
1021
mpt_free_msg_frame(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
drivers/message/fusion/mptbase.c
1026
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptbase.c
1031
list_add(&mf->u.frame.linkage.list, &ioc->FreeQ);
drivers/message/fusion/mptbase.c
1033
ioc->mfcnt--;
drivers/message/fusion/mptbase.c
1036
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptbase.c
1180
mpt_send_handshake_request(u8 cb_idx, MPT_ADAPTER *ioc, int reqBytes, u32 *req, int sleepFlag)
drivers/message/fusion/mptbase.c
1196
ii = MFPTR_2_MPT_INDEX(ioc,(MPT_FRAME_HDR*)req);
drivers/message/fusion/mptbase.c
1197
if (reqBytes >= 12 && ii >= 0 && ii < ioc->req_depth) {
drivers/message/fusion/mptbase.c
1204
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
1206
CHIPREG_WRITE32(&ioc->chip->Doorbell,
drivers/message/fusion/mptbase.c
1211
if ((ii = WaitForDoorbellInt(ioc, 5, sleepFlag)) < 0) {
drivers/message/fusion/mptbase.c
1216
if (!(CHIPREG_READ32(&ioc->chip->Doorbell) & MPI_DOORBELL_ACTIVE))
drivers/message/fusion/mptbase.c
1219
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mpt_send_handshake_request start, WaitCnt=%d\n",
drivers/message/fusion/mptbase.c
1220
ioc->name, ii));
drivers/message/fusion/mptbase.c
1222
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
1224
if ((r = WaitForDoorbellAck(ioc, 5, sleepFlag)) < 0) {
drivers/message/fusion/mptbase.c
1237
CHIPREG_WRITE32(&ioc->chip->Doorbell, word);
drivers/message/fusion/mptbase.c
1238
if ((r = WaitForDoorbellAck(ioc, 5, sleepFlag)) < 0) {
drivers/message/fusion/mptbase.c
1244
if (r >= 0 && WaitForDoorbellInt(ioc, 10, sleepFlag) >= 0)
drivers/message/fusion/mptbase.c
1250
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
1275
mpt_host_page_access_control(MPT_ADAPTER *ioc, u8 access_control_value, int sleepFlag)
drivers/message/fusion/mptbase.c
1278
if (CHIPREG_READ32(&ioc->chip->Doorbell)
drivers/message/fusion/mptbase.c
1282
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
1284
CHIPREG_WRITE32(&ioc->chip->Doorbell,
drivers/message/fusion/mptbase.c
1290
if (WaitForDoorbellAck(ioc, 5, sleepFlag) < 0)
drivers/message/fusion/mptbase.c
1306
mpt_host_page_alloc(MPT_ADAPTER *ioc, pIOCInit_t ioc_init)
drivers/message/fusion/mptbase.c
1312
if(!ioc->HostPageBuffer) {
drivers/message/fusion/mptbase.c
1315
le32_to_cpu(ioc->facts.HostPageBufferSGE.FlagsLength) & 0xFFFFFF;
drivers/message/fusion/mptbase.c
1322
ioc->HostPageBuffer =
drivers/message/fusion/mptbase.c
1323
dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
1325
&ioc->HostPageBuffer_dma,
drivers/message/fusion/mptbase.c
1327
if (ioc->HostPageBuffer) {
drivers/message/fusion/mptbase.c
1328
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
1330
ioc->name, ioc->HostPageBuffer,
drivers/message/fusion/mptbase.c
1331
(u32)ioc->HostPageBuffer_dma,
drivers/message/fusion/mptbase.c
1333
ioc->alloc_total += host_page_buffer_sz;
drivers/message/fusion/mptbase.c
1334
ioc->HostPageBuffer_sz = host_page_buffer_sz;
drivers/message/fusion/mptbase.c
1342
if(!ioc->HostPageBuffer) {
drivers/message/fusion/mptbase.c
1345
ioc->name);
drivers/message/fusion/mptbase.c
1355
flags_length |= ioc->HostPageBuffer_sz;
drivers/message/fusion/mptbase.c
1356
ioc->add_sge(psge, flags_length, ioc->HostPageBuffer_dma);
drivers/message/fusion/mptbase.c
1357
ioc->facts.HostPageBufferSGE = ioc_init->HostPageBufferSGE;
drivers/message/fusion/mptbase.c
1377
MPT_ADAPTER *ioc;
drivers/message/fusion/mptbase.c
1379
list_for_each_entry(ioc,&ioc_list,list) {
drivers/message/fusion/mptbase.c
1380
if (ioc->id == iocid) {
drivers/message/fusion/mptbase.c
1381
*iocpp =ioc;
drivers/message/fusion/mptbase.c
160
static int mptbase_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req,
drivers/message/fusion/mptbase.c
162
static int mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes,
drivers/message/fusion/mptbase.c
1636
mpt_mapresources(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
1647
pdev = ioc->pcidev;
drivers/message/fusion/mptbase.c
1648
ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM);
drivers/message/fusion/mptbase.c
165
static int mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag);
drivers/message/fusion/mptbase.c
1651
"failed\n", ioc->name);
drivers/message/fusion/mptbase.c
1654
if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) {
drivers/message/fusion/mptbase.c
1656
"MEM failed\n", ioc->name);
drivers/message/fusion/mptbase.c
166
static void mpt_detect_bound_ports(MPT_ADAPTER *ioc, struct pci_dev *pdev);
drivers/message/fusion/mptbase.c
1666
ioc->dma_mask = DMA_BIT_MASK(64);
drivers/message/fusion/mptbase.c
1667
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
1669
ioc->name));
drivers/message/fusion/mptbase.c
167
static void mpt_adapter_disable(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1672
ioc->dma_mask = DMA_BIT_MASK(32);
drivers/message/fusion/mptbase.c
1673
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
1675
ioc->name));
drivers/message/fusion/mptbase.c
1678
ioc->name, pci_name(pdev));
drivers/message/fusion/mptbase.c
168
static void mpt_adapter_dispose(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1684
ioc->dma_mask = DMA_BIT_MASK(32);
drivers/message/fusion/mptbase.c
1685
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
1687
ioc->name));
drivers/message/fusion/mptbase.c
1690
ioc->name, pci_name(pdev));
drivers/message/fusion/mptbase.c
170
static void MptDisplayIocCapabilities(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
171
static int MakeIocReady(MPT_ADAPTER *ioc, int force, int sleepFlag);
drivers/message/fusion/mptbase.c
1712
ioc->mem_size = msize;
drivers/message/fusion/mptbase.c
172
static int GetIocFacts(MPT_ADAPTER *ioc, int sleepFlag, int reason);
drivers/message/fusion/mptbase.c
1720
" memory!\n", ioc->name);
drivers/message/fusion/mptbase.c
1724
ioc->memmap = mem;
drivers/message/fusion/mptbase.c
1725
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %llx\n",
drivers/message/fusion/mptbase.c
1726
ioc->name, mem, (unsigned long long)mem_phys));
drivers/message/fusion/mptbase.c
1728
ioc->mem_phys = mem_phys;
drivers/message/fusion/mptbase.c
1729
ioc->chip = (SYSIF_REGS __iomem *)mem;
drivers/message/fusion/mptbase.c
173
static int GetPortFacts(MPT_ADAPTER *ioc, int portnum, int sleepFlag);
drivers/message/fusion/mptbase.c
1732
ioc->pio_mem_phys = port;
drivers/message/fusion/mptbase.c
1733
ioc->pio_chip = (SYSIF_REGS __iomem *)port;
drivers/message/fusion/mptbase.c
1738
pci_release_selected_regions(pdev, ioc->bars);
drivers/message/fusion/mptbase.c
174
static int SendIocInit(MPT_ADAPTER *ioc, int sleepFlag);
drivers/message/fusion/mptbase.c
175
static int SendPortEnable(MPT_ADAPTER *ioc, int portnum, int sleepFlag);
drivers/message/fusion/mptbase.c
176
static int mpt_do_upload(MPT_ADAPTER *ioc, int sleepFlag);
drivers/message/fusion/mptbase.c
1765
MPT_ADAPTER *ioc;
drivers/message/fusion/mptbase.c
177
static int mpt_downloadboot(MPT_ADAPTER *ioc, MpiFwHeader_t *pFwHeader, int sleepFlag);
drivers/message/fusion/mptbase.c
1774
ioc = kzalloc_obj(MPT_ADAPTER);
drivers/message/fusion/mptbase.c
1775
if (ioc == NULL) {
drivers/message/fusion/mptbase.c
178
static int mpt_diag_reset(MPT_ADAPTER *ioc, int ignore, int sleepFlag);
drivers/message/fusion/mptbase.c
1780
ioc->id = mpt_ids++;
drivers/message/fusion/mptbase.c
1781
sprintf(ioc->name, "ioc%d", ioc->id);
drivers/message/fusion/mptbase.c
1782
dinitprintk(ioc, printk(KERN_WARNING MYNAM ": mpt_adapter_install\n"));
drivers/message/fusion/mptbase.c
1789
ioc->debug_level = mpt_debug_level;
drivers/message/fusion/mptbase.c
179
static int KickStart(MPT_ADAPTER *ioc, int ignore, int sleepFlag);
drivers/message/fusion/mptbase.c
1793
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT ": mpt_adapter_install\n", ioc->name));
drivers/message/fusion/mptbase.c
1795
ioc->pcidev = pdev;
drivers/message/fusion/mptbase.c
1796
if (mpt_mapresources(ioc)) {
drivers/message/fusion/mptbase.c
180
static int SendIocReset(MPT_ADAPTER *ioc, u8 reset_type, int sleepFlag);
drivers/message/fusion/mptbase.c
1803
if (ioc->dma_mask == DMA_BIT_MASK(64)) {
drivers/message/fusion/mptbase.c
1805
ioc->add_sge = &mpt_add_sge_64bit_1078;
drivers/message/fusion/mptbase.c
1807
ioc->add_sge = &mpt_add_sge_64bit;
drivers/message/fusion/mptbase.c
1808
ioc->add_chain = &mpt_add_chain_64bit;
drivers/message/fusion/mptbase.c
1809
ioc->sg_addr_size = 8;
drivers/message/fusion/mptbase.c
181
static int PrimeIocFifos(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1811
ioc->add_sge = &mpt_add_sge;
drivers/message/fusion/mptbase.c
1812
ioc->add_chain = &mpt_add_chain;
drivers/message/fusion/mptbase.c
1813
ioc->sg_addr_size = 4;
drivers/message/fusion/mptbase.c
1815
ioc->SGE_size = sizeof(u32) + ioc->sg_addr_size;
drivers/message/fusion/mptbase.c
1817
ioc->alloc_total = sizeof(MPT_ADAPTER);
drivers/message/fusion/mptbase.c
1818
ioc->req_sz = MPT_DEFAULT_FRAME_SIZE; /* avoid div by zero! */
drivers/message/fusion/mptbase.c
1819
ioc->reply_sz = MPT_REPLY_FRAME_SIZE;
drivers/message/fusion/mptbase.c
182
static int WaitForDoorbellAck(MPT_ADAPTER *ioc, int howlong, int sleepFlag);
drivers/message/fusion/mptbase.c
1822
spin_lock_init(&ioc->taskmgmt_lock);
drivers/message/fusion/mptbase.c
1823
mutex_init(&ioc->internal_cmds.mutex);
drivers/message/fusion/mptbase.c
1824
init_completion(&ioc->internal_cmds.done);
drivers/message/fusion/mptbase.c
1825
mutex_init(&ioc->mptbase_cmds.mutex);
drivers/message/fusion/mptbase.c
1826
init_completion(&ioc->mptbase_cmds.done);
drivers/message/fusion/mptbase.c
1827
mutex_init(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptbase.c
1828
init_completion(&ioc->taskmgmt_cmds.done);
drivers/message/fusion/mptbase.c
183
static int WaitForDoorbellInt(MPT_ADAPTER *ioc, int howlong, int sleepFlag);
drivers/message/fusion/mptbase.c
1832
ioc->eventTypes = 0; /* None */
drivers/message/fusion/mptbase.c
1833
ioc->eventContext = 0;
drivers/message/fusion/mptbase.c
1834
ioc->eventLogSize = 0;
drivers/message/fusion/mptbase.c
1835
ioc->events = NULL;
drivers/message/fusion/mptbase.c
1838
ioc->mfcnt = 0;
drivers/message/fusion/mptbase.c
184
static int WaitForDoorbellReply(MPT_ADAPTER *ioc, int howlong, int sleepFlag);
drivers/message/fusion/mptbase.c
1841
ioc->sh = NULL;
drivers/message/fusion/mptbase.c
1842
ioc->cached_fw = NULL;
drivers/message/fusion/mptbase.c
1846
memset(&ioc->spi_data, 0, sizeof(SpiCfgData));
drivers/message/fusion/mptbase.c
185
static int GetLanConfigPages(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1850
INIT_LIST_HEAD(&ioc->fc_rports);
drivers/message/fusion/mptbase.c
1853
INIT_LIST_HEAD(&ioc->list);
drivers/message/fusion/mptbase.c
1857
INIT_DELAYED_WORK(&ioc->fault_reset_work, mpt_fault_reset_work);
drivers/message/fusion/mptbase.c
1859
ioc->reset_work_q =
drivers/message/fusion/mptbase.c
186
static int GetIoUnitPage2(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1861
ioc->id);
drivers/message/fusion/mptbase.c
1862
if (!ioc->reset_work_q) {
drivers/message/fusion/mptbase.c
1864
ioc->name);
drivers/message/fusion/mptbase.c
1869
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n",
drivers/message/fusion/mptbase.c
187
int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode);
drivers/message/fusion/mptbase.c
1870
ioc->name, &ioc->facts, &ioc->pfacts[0]));
drivers/message/fusion/mptbase.c
1872
ioc->prod_name = mpt_get_product_name(pdev->vendor, pdev->device,
drivers/message/fusion/mptbase.c
1879
ioc->errata_flag_1064 = 1;
drivers/message/fusion/mptbase.c
188
static int mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum);
drivers/message/fusion/mptbase.c
1885
ioc->bus_type = FC;
drivers/message/fusion/mptbase.c
189
static int mpt_readScsiDevicePageHeaders(MPT_ADAPTER *ioc, int portnum);
drivers/message/fusion/mptbase.c
190
static void mpt_read_ioc_pg_1(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1903
ioc->bus_type = FC;
drivers/message/fusion/mptbase.c
191
static void mpt_read_ioc_pg_4(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1913
ioc->bus_type = FC;
drivers/message/fusion/mptbase.c
192
static void mpt_get_manufacturing_pg_0(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
1928
ioc->bus_type = SPI;
drivers/message/fusion/mptbase.c
193
static int SendEventNotification(MPT_ADAPTER *ioc, u8 EvSwitch,
drivers/message/fusion/mptbase.c
1933
ioc->errata_flag_1064 = 1;
drivers/message/fusion/mptbase.c
1934
ioc->bus_type = SAS;
drivers/message/fusion/mptbase.c
1940
ioc->bus_type = SAS;
drivers/message/fusion/mptbase.c
1945
switch (ioc->bus_type) {
drivers/message/fusion/mptbase.c
1948
ioc->msi_enable = mpt_msi_enable_sas;
drivers/message/fusion/mptbase.c
195
static int SendEventAck(MPT_ADAPTER *ioc, EventNotificationReply_t *evnp);
drivers/message/fusion/mptbase.c
1952
ioc->msi_enable = mpt_msi_enable_spi;
drivers/message/fusion/mptbase.c
1956
ioc->msi_enable = mpt_msi_enable_fc;
drivers/message/fusion/mptbase.c
196
static int mpt_host_page_access_control(MPT_ADAPTER *ioc, u8 access_control_value, int sleepFlag);
drivers/message/fusion/mptbase.c
1960
ioc->msi_enable = 0;
drivers/message/fusion/mptbase.c
1964
ioc->fw_events_off = 1;
drivers/message/fusion/mptbase.c
1966
if (ioc->errata_flag_1064)
drivers/message/fusion/mptbase.c
1969
spin_lock_init(&ioc->FreeQlock);
drivers/message/fusion/mptbase.c
197
static int mpt_host_page_alloc(MPT_ADAPTER *ioc, pIOCInit_t ioc_init);
drivers/message/fusion/mptbase.c
1972
CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
1973
ioc->active = 0;
drivers/message/fusion/mptbase.c
1974
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
1977
pci_set_drvdata(ioc->pcidev, ioc);
drivers/message/fusion/mptbase.c
1980
list_add_tail(&ioc->list, &ioc_list);
drivers/message/fusion/mptbase.c
1984
mpt_detect_bound_ports(ioc, pdev);
drivers/message/fusion/mptbase.c
1986
INIT_LIST_HEAD(&ioc->fw_event_list);
drivers/message/fusion/mptbase.c
1987
spin_lock_init(&ioc->fw_event_lock);
drivers/message/fusion/mptbase.c
1988
ioc->fw_event_q = alloc_workqueue("mpt/%d",
drivers/message/fusion/mptbase.c
1990
ioc->id);
drivers/message/fusion/mptbase.c
1991
if (!ioc->fw_event_q) {
drivers/message/fusion/mptbase.c
1993
ioc->name);
drivers/message/fusion/mptbase.c
1998
if ((r = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_BRINGUP,
drivers/message/fusion/mptbase.c
2001
ioc->name, r);
drivers/message/fusion/mptbase.c
2003
destroy_workqueue(ioc->fw_event_q);
drivers/message/fusion/mptbase.c
2004
ioc->fw_event_q = NULL;
drivers/message/fusion/mptbase.c
2006
list_del(&ioc->list);
drivers/message/fusion/mptbase.c
2007
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
2008
ioc->alt_ioc->alt_ioc = NULL;
drivers/message/fusion/mptbase.c
2009
iounmap(ioc->memmap);
drivers/message/fusion/mptbase.c
2013
pci_release_selected_regions(pdev, ioc->bars);
drivers/message/fusion/mptbase.c
2015
destroy_workqueue(ioc->reset_work_q);
drivers/message/fusion/mptbase.c
2016
ioc->reset_work_q = NULL;
drivers/message/fusion/mptbase.c
2018
kfree(ioc);
drivers/message/fusion/mptbase.c
2034
dent = proc_mkdir(ioc->name, mpt_proc_root_dir);
drivers/message/fusion/mptbase.c
2037
mpt_iocinfo_proc_show, ioc);
drivers/message/fusion/mptbase.c
2039
mpt_summary_proc_show, ioc);
drivers/message/fusion/mptbase.c
204
static void mpt_get_fw_exp_ver(char *buf, MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
2043
if (!ioc->alt_ioc)
drivers/message/fusion/mptbase.c
2044
queue_delayed_work(ioc->reset_work_q, &ioc->fault_reset_work,
drivers/message/fusion/mptbase.c
2050
list_del(&ioc->list);
drivers/message/fusion/mptbase.c
2051
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
2052
ioc->alt_ioc->alt_ioc = NULL;
drivers/message/fusion/mptbase.c
2054
destroy_workqueue(ioc->reset_work_q);
drivers/message/fusion/mptbase.c
2055
ioc->reset_work_q = NULL;
drivers/message/fusion/mptbase.c
2058
iounmap(ioc->memmap);
drivers/message/fusion/mptbase.c
206
static int ProcessEventNotification(MPT_ADAPTER *ioc,
drivers/message/fusion/mptbase.c
2060
pci_release_selected_regions(pdev, ioc->bars);
drivers/message/fusion/mptbase.c
2063
kfree(ioc);
drivers/message/fusion/mptbase.c
2077
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptbase.c
208
static void mpt_iocstatus_info(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf);
drivers/message/fusion/mptbase.c
2086
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
2087
wq = ioc->reset_work_q;
drivers/message/fusion/mptbase.c
2088
ioc->reset_work_q = NULL;
drivers/message/fusion/mptbase.c
2089
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
209
static void mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info);
drivers/message/fusion/mptbase.c
2090
cancel_delayed_work(&ioc->fault_reset_work);
drivers/message/fusion/mptbase.c
2093
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptbase.c
2094
wq = ioc->fw_event_q;
drivers/message/fusion/mptbase.c
2095
ioc->fw_event_q = NULL;
drivers/message/fusion/mptbase.c
2096
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptbase.c
2099
snprintf(pname, sizeof(pname), MPT_PROCFS_MPTBASEDIR "/%s/summary", ioc->name);
drivers/message/fusion/mptbase.c
210
static void mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info);
drivers/message/fusion/mptbase.c
2101
snprintf(pname, sizeof(pname), MPT_PROCFS_MPTBASEDIR "/%s/info", ioc->name);
drivers/message/fusion/mptbase.c
2103
snprintf(pname, sizeof(pname), MPT_PROCFS_MPTBASEDIR "/%s", ioc->name);
drivers/message/fusion/mptbase.c
211
static void mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info , u8 cb_idx);
drivers/message/fusion/mptbase.c
2115
CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
2117
ioc->active = 0;
drivers/message/fusion/mptbase.c
212
static int mpt_read_ioc_pg_3(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
2121
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
2123
CHIPREG_READ32(&ioc->chip->IntStatus);
drivers/message/fusion/mptbase.c
2125
mpt_adapter_dispose(ioc);
drivers/message/fusion/mptbase.c
213
static void mpt_inactive_raid_list_free(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.c
2143
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptbase.c
2147
"operating state [D%d]\n", ioc->name, pdev, pci_name(pdev),
drivers/message/fusion/mptbase.c
2151
if (SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) {
drivers/message/fusion/mptbase.c
2153
"pci-suspend: IOC msg unit reset failed!\n", ioc->name);
drivers/message/fusion/mptbase.c
2157
CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
2158
ioc->active = 0;
drivers/message/fusion/mptbase.c
2161
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
2163
free_irq(ioc->pci_irq, ioc);
drivers/message/fusion/mptbase.c
2164
if (ioc->msi_enable)
drivers/message/fusion/mptbase.c
2165
pci_disable_msi(ioc->pcidev);
drivers/message/fusion/mptbase.c
2166
ioc->pci_irq = -1;
drivers/message/fusion/mptbase.c
2169
pci_release_selected_regions(pdev, ioc->bars);
drivers/message/fusion/mptbase.c
2182
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptbase.c
2188
"operating state [D%d]\n", ioc->name, pdev, pci_name(pdev),
drivers/message/fusion/mptbase.c
2194
ioc->pcidev = pdev;
drivers/message/fusion/mptbase.c
2195
err = mpt_mapresources(ioc);
drivers/message/fusion/mptbase.c
2199
if (ioc->dma_mask == DMA_BIT_MASK(64)) {
drivers/message/fusion/mptbase.c
2201
ioc->add_sge = &mpt_add_sge_64bit_1078;
drivers/message/fusion/mptbase.c
2203
ioc->add_sge = &mpt_add_sge_64bit;
drivers/message/fusion/mptbase.c
2204
ioc->add_chain = &mpt_add_chain_64bit;
drivers/message/fusion/mptbase.c
2205
ioc->sg_addr_size = 8;
drivers/message/fusion/mptbase.c
2208
ioc->add_sge = &mpt_add_sge;
drivers/message/fusion/mptbase.c
2209
ioc->add_chain = &mpt_add_chain;
drivers/message/fusion/mptbase.c
2210
ioc->sg_addr_size = 4;
drivers/message/fusion/mptbase.c
2212
ioc->SGE_size = sizeof(u32) + ioc->sg_addr_size;
drivers/message/fusion/mptbase.c
2215
ioc->name, (mpt_GetIocState(ioc, 1) >> MPI_IOC_STATE_SHIFT),
drivers/message/fusion/mptbase.c
2216
CHIPREG_READ32(&ioc->chip->Doorbell));
drivers/message/fusion/mptbase.c
2225
if (ioc->bus_type == SAS && (pdev->device ==
drivers/message/fusion/mptbase.c
2228
if (KickStart(ioc, 1, CAN_SLEEP) < 0) {
drivers/message/fusion/mptbase.c
2230
ioc->name);
drivers/message/fusion/mptbase.c
2236
printk(MYIOC_s_INFO_FMT "Sending mpt_do_ioc_recovery\n", ioc->name);
drivers/message/fusion/mptbase.c
2237
recovery_state = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_BRINGUP,
drivers/message/fusion/mptbase.c
2241
"error:[%x]\n", ioc->name, recovery_state);
drivers/message/fusion/mptbase.c
2244
"pci-resume: success\n", ioc->name);
drivers/message/fusion/mptbase.c
2252
mpt_signal_reset(u8 index, MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptbase.c
2255
ioc->bus_type != SPI) ||
drivers/message/fusion/mptbase.c
2257
ioc->bus_type != FC) ||
drivers/message/fusion/mptbase.c
2259
ioc->bus_type != SAS))
drivers/message/fusion/mptbase.c
2263
return (MptResetHandlers[index])(ioc, reset_phase);
drivers/message/fusion/mptbase.c
2289
mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag)
drivers/message/fusion/mptbase.c
2301
printk(MYIOC_s_INFO_FMT "Initiating %s\n", ioc->name,
drivers/message/fusion/mptbase.c
2305
CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
2306
ioc->active = 0;
drivers/message/fusion/mptbase.c
2308
if (ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
2309
if (ioc->alt_ioc->active ||
drivers/message/fusion/mptbase.c
2315
CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask,
drivers/message/fusion/mptbase.c
2317
ioc->alt_ioc->active = 0;
drivers/message/fusion/mptbase.c
2325
if ((hard_reset_done = MakeIocReady(ioc, hard, sleepFlag)) < 0) {
drivers/message/fusion/mptbase.c
2328
ioc->name);
drivers/message/fusion/mptbase.c
2330
if (reset_alt_ioc_active && ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
2332
dprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
2333
"alt_ioc reply irq re-enabled\n", ioc->alt_ioc->name));
drivers/message/fusion/mptbase.c
2334
CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask, MPI_HIM_DIM);
drivers/message/fusion/mptbase.c
2335
ioc->alt_ioc->active = 1;
drivers/message/fusion/mptbase.c
2340
"NOT READY WARNING!\n", ioc->name);
drivers/message/fusion/mptbase.c
2349
if (hard_reset_done && reset_alt_ioc_active && ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
2350
if ((rc = MakeIocReady(ioc->alt_ioc, 0, sleepFlag)) == 0)
drivers/message/fusion/mptbase.c
2355
ioc->alt_ioc->name);
drivers/message/fusion/mptbase.c
2360
if ((rc = GetIocFacts(ioc, sleepFlag, reason)) == 0)
drivers/message/fusion/mptbase.c
2366
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2367
"Retry IocFacts failed rc=%x\n", ioc->name, rc));
drivers/message/fusion/mptbase.c
2370
MptDisplayIocCapabilities(ioc);
drivers/message/fusion/mptbase.c
2374
if ((rc = GetIocFacts(ioc->alt_ioc, sleepFlag, reason)) != 0) {
drivers/message/fusion/mptbase.c
2375
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2377
ioc->name, rc));
drivers/message/fusion/mptbase.c
2380
rc = GetIocFacts(ioc->alt_ioc, sleepFlag, reason);
drivers/message/fusion/mptbase.c
2383
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2384
"Retry Alt IocFacts failed rc=%x\n", ioc->name, rc));
drivers/message/fusion/mptbase.c
2388
MptDisplayIocCapabilities(ioc->alt_ioc);
drivers/message/fusion/mptbase.c
2393
(ioc->facts.Flags & MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT)) {
drivers/message/fusion/mptbase.c
2394
pci_release_selected_regions(ioc->pcidev, ioc->bars);
drivers/message/fusion/mptbase.c
2395
ioc->bars = pci_select_bars(ioc->pcidev, IORESOURCE_MEM |
drivers/message/fusion/mptbase.c
2397
if (pci_enable_device(ioc->pcidev))
drivers/message/fusion/mptbase.c
2399
if (pci_request_selected_regions(ioc->pcidev, ioc->bars,
drivers/message/fusion/mptbase.c
2410
ioc->pci_irq = -1;
drivers/message/fusion/mptbase.c
2411
if (ioc->pcidev->irq) {
drivers/message/fusion/mptbase.c
2412
if (ioc->msi_enable && !pci_enable_msi(ioc->pcidev))
drivers/message/fusion/mptbase.c
2414
ioc->name);
drivers/message/fusion/mptbase.c
2416
ioc->msi_enable = 0;
drivers/message/fusion/mptbase.c
2417
rc = request_irq(ioc->pcidev->irq, mpt_interrupt,
drivers/message/fusion/mptbase.c
2418
IRQF_SHARED, ioc->name, ioc);
drivers/message/fusion/mptbase.c
2422
ioc->name, ioc->pcidev->irq);
drivers/message/fusion/mptbase.c
2423
if (ioc->msi_enable)
drivers/message/fusion/mptbase.c
2424
pci_disable_msi(ioc->pcidev);
drivers/message/fusion/mptbase.c
2429
ioc->pci_irq = ioc->pcidev->irq;
drivers/message/fusion/mptbase.c
2430
pci_set_master(ioc->pcidev); /* ?? */
drivers/message/fusion/mptbase.c
2431
pci_set_drvdata(ioc->pcidev, ioc);
drivers/message/fusion/mptbase.c
2432
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
2433
"installed at interrupt %d\n", ioc->name,
drivers/message/fusion/mptbase.c
2434
ioc->pcidev->irq));
drivers/message/fusion/mptbase.c
2443
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "PrimeIocFifos\n",
drivers/message/fusion/mptbase.c
2444
ioc->name));
drivers/message/fusion/mptbase.c
2445
if ((ret == 0) && ((rc = PrimeIocFifos(ioc)) != 0))
drivers/message/fusion/mptbase.c
2451
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "SendIocInit\n",
drivers/message/fusion/mptbase.c
2452
ioc->name));
drivers/message/fusion/mptbase.c
2453
if ((ret == 0) && ((rc = SendIocInit(ioc, sleepFlag)) != 0))
drivers/message/fusion/mptbase.c
2456
if (alt_ioc_ready && ((rc = PrimeIocFifos(ioc->alt_ioc)) != 0)) {
drivers/message/fusion/mptbase.c
2459
ioc->alt_ioc->name, rc);
drivers/message/fusion/mptbase.c
2465
if ((rc = SendIocInit(ioc->alt_ioc, sleepFlag)) != 0) {
drivers/message/fusion/mptbase.c
2470
ioc->alt_ioc->name, rc);
drivers/message/fusion/mptbase.c
2475
if (ioc->upload_fw) {
drivers/message/fusion/mptbase.c
2476
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2477
"firmware upload required!\n", ioc->name));
drivers/message/fusion/mptbase.c
248
MPT_ADAPTER *ioc;
drivers/message/fusion/mptbase.c
2482
rc = mpt_do_upload(ioc, sleepFlag);
drivers/message/fusion/mptbase.c
2484
if (ioc->alt_ioc && ioc->alt_ioc->cached_fw) {
drivers/message/fusion/mptbase.c
2492
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2494
ioc->name, ioc->alt_ioc->name, ioc->alt_ioc->cached_fw));
drivers/message/fusion/mptbase.c
2495
ioc->cached_fw = NULL;
drivers/message/fusion/mptbase.c
2499
"firmware upload failure!\n", ioc->name);
drivers/message/fusion/mptbase.c
2509
if ((ret == 0) && (!ioc->facts.EventState)) {
drivers/message/fusion/mptbase.c
2510
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
2512
ioc->name));
drivers/message/fusion/mptbase.c
2513
ret = SendEventNotification(ioc, 1, sleepFlag); /* 1=Enable */
drivers/message/fusion/mptbase.c
2516
if (ioc->alt_ioc && alt_ioc_ready && !ioc->alt_ioc->facts.EventState)
drivers/message/fusion/mptbase.c
2517
rc = SendEventNotification(ioc->alt_ioc, 1, sleepFlag);
drivers/message/fusion/mptbase.c
2521
CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM);
drivers/message/fusion/mptbase.c
2522
ioc->active = 1;
drivers/message/fusion/mptbase.c
2525
if (reset_alt_ioc_active && ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
2527
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "alt-ioc"
drivers/message/fusion/mptbase.c
2529
ioc->alt_ioc->name));
drivers/message/fusion/mptbase.c
253
list_for_each_entry(ioc, &ioc_list, list)
drivers/message/fusion/mptbase.c
2530
CHIPREG_WRITE32(&ioc->alt_ioc->chip->IntMask,
drivers/message/fusion/mptbase.c
2532
ioc->alt_ioc->active = 1;
drivers/message/fusion/mptbase.c
254
ioc->debug_level = mpt_debug_level;
drivers/message/fusion/mptbase.c
2548
mutex_init(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptbase.c
2549
INIT_LIST_HEAD(&ioc->raid_data.inactive_list);
drivers/message/fusion/mptbase.c
2551
switch (ioc->bus_type) {
drivers/message/fusion/mptbase.c
2555
if(ioc->facts.IOCExceptions &
drivers/message/fusion/mptbase.c
2557
ret = mptbase_sas_persist_operation(ioc,
drivers/message/fusion/mptbase.c
2565
mpt_findImVolumes(ioc);
drivers/message/fusion/mptbase.c
2569
mpt_read_ioc_pg_1(ioc);
drivers/message/fusion/mptbase.c
2574
if ((ioc->pfacts[0].ProtocolFlags &
drivers/message/fusion/mptbase.c
2576
(ioc->lan_cnfg_page0.Header.PageLength == 0)) {
drivers/message/fusion/mptbase.c
2581
(void) GetLanConfigPages(ioc);
drivers/message/fusion/mptbase.c
2582
a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow;
drivers/message/fusion/mptbase.c
2583
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2584
"LanAddr = %pMR\n", ioc->name, a));
drivers/message/fusion/mptbase.c
2591
mpt_GetScsiPortSettings(ioc, 0);
drivers/message/fusion/mptbase.c
2595
mpt_readScsiDevicePageHeaders(ioc, 0);
drivers/message/fusion/mptbase.c
2599
if (ioc->facts.MsgVersion >= MPI_VERSION_01_02)
drivers/message/fusion/mptbase.c
2600
mpt_findImVolumes(ioc);
drivers/message/fusion/mptbase.c
2604
mpt_read_ioc_pg_1(ioc);
drivers/message/fusion/mptbase.c
2606
mpt_read_ioc_pg_4(ioc);
drivers/message/fusion/mptbase.c
2611
GetIoUnitPage2(ioc);
drivers/message/fusion/mptbase.c
2612
mpt_get_manufacturing_pg_0(ioc);
drivers/message/fusion/mptbase.c
2617
free_irq(ioc->pci_irq, ioc);
drivers/message/fusion/mptbase.c
2618
if (ioc->msi_enable)
drivers/message/fusion/mptbase.c
2619
pci_disable_msi(ioc->pcidev);
drivers/message/fusion/mptbase.c
2638
mpt_detect_bound_ports(MPT_ADAPTER *ioc, struct pci_dev *pdev)
drivers/message/fusion/mptbase.c
2645
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "PCI device %s devfn=%x/%x,"
drivers/message/fusion/mptbase.c
2647
ioc->name, pci_name(pdev), pdev->bus->number,
drivers/message/fusion/mptbase.c
2661
if (ioc->alt_ioc != NULL) {
drivers/message/fusion/mptbase.c
2664
ioc->name, ioc->name, ioc->alt_ioc->name);
drivers/message/fusion/mptbase.c
2673
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2675
ioc->name, ioc->name, ioc_srch->name));
drivers/message/fusion/mptbase.c
2676
ioc_srch->alt_ioc = ioc;
drivers/message/fusion/mptbase.c
2677
ioc->alt_ioc = ioc_srch;
drivers/message/fusion/mptbase.c
2689
mpt_adapter_disable(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
2694
if (ioc->cached_fw != NULL) {
drivers/message/fusion/mptbase.c
2695
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2696
"%s: Pushing FW onto adapter\n", __func__, ioc->name));
drivers/message/fusion/mptbase.c
2697
if ((ret = mpt_downloadboot(ioc, (MpiFwHeader_t *)
drivers/message/fusion/mptbase.c
2698
ioc->cached_fw, CAN_SLEEP)) < 0) {
drivers/message/fusion/mptbase.c
2701
ioc->name, ret);
drivers/message/fusion/mptbase.c
2708
if (mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_READY) {
drivers/message/fusion/mptbase.c
2709
if (!SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET,
drivers/message/fusion/mptbase.c
2711
if (mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_READY)
drivers/message/fusion/mptbase.c
2714
ioc->name, __func__);
drivers/message/fusion/mptbase.c
2717
"failed!\n", ioc->name, __func__);
drivers/message/fusion/mptbase.c
2722
synchronize_irq(ioc->pcidev->irq);
drivers/message/fusion/mptbase.c
2723
CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
2724
ioc->active = 0;
drivers/message/fusion/mptbase.c
2727
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
2728
CHIPREG_READ32(&ioc->chip->IntStatus);
drivers/message/fusion/mptbase.c
2730
if (ioc->alloc != NULL) {
drivers/message/fusion/mptbase.c
2731
sz = ioc->alloc_sz;
drivers/message/fusion/mptbase.c
2732
dexitprintk(ioc, printk(MYIOC_s_INFO_FMT "free @ %p, sz=%d bytes\n",
drivers/message/fusion/mptbase.c
2733
ioc->name, ioc->alloc, ioc->alloc_sz));
drivers/message/fusion/mptbase.c
2734
dma_free_coherent(&ioc->pcidev->dev, sz, ioc->alloc,
drivers/message/fusion/mptbase.c
2735
ioc->alloc_dma);
drivers/message/fusion/mptbase.c
2736
ioc->reply_frames = NULL;
drivers/message/fusion/mptbase.c
2737
ioc->req_frames = NULL;
drivers/message/fusion/mptbase.c
2738
ioc->alloc = NULL;
drivers/message/fusion/mptbase.c
2739
ioc->alloc_total -= sz;
drivers/message/fusion/mptbase.c
2742
if (ioc->sense_buf_pool != NULL) {
drivers/message/fusion/mptbase.c
2743
sz = (ioc->req_depth * MPT_SENSE_BUFFER_ALLOC);
drivers/message/fusion/mptbase.c
2744
dma_free_coherent(&ioc->pcidev->dev, sz, ioc->sense_buf_pool,
drivers/message/fusion/mptbase.c
2745
ioc->sense_buf_pool_dma);
drivers/message/fusion/mptbase.c
2746
ioc->sense_buf_pool = NULL;
drivers/message/fusion/mptbase.c
2747
ioc->alloc_total -= sz;
drivers/message/fusion/mptbase.c
2750
if (ioc->events != NULL){
drivers/message/fusion/mptbase.c
2752
kfree(ioc->events);
drivers/message/fusion/mptbase.c
2753
ioc->events = NULL;
drivers/message/fusion/mptbase.c
2754
ioc->alloc_total -= sz;
drivers/message/fusion/mptbase.c
2757
mpt_free_fw_memory(ioc);
drivers/message/fusion/mptbase.c
2759
kfree(ioc->spi_data.nvram);
drivers/message/fusion/mptbase.c
2760
mpt_inactive_raid_list_free(ioc);
drivers/message/fusion/mptbase.c
2761
kfree(ioc->raid_data.pIocPg2);
drivers/message/fusion/mptbase.c
2762
kfree(ioc->raid_data.pIocPg3);
drivers/message/fusion/mptbase.c
2763
ioc->spi_data.nvram = NULL;
drivers/message/fusion/mptbase.c
2764
ioc->raid_data.pIocPg3 = NULL;
drivers/message/fusion/mptbase.c
2766
if (ioc->spi_data.pIocPg4 != NULL) {
drivers/message/fusion/mptbase.c
2767
sz = ioc->spi_data.IocPg4Sz;
drivers/message/fusion/mptbase.c
2768
dma_free_coherent(&ioc->pcidev->dev, sz,
drivers/message/fusion/mptbase.c
2769
ioc->spi_data.pIocPg4,
drivers/message/fusion/mptbase.c
2770
ioc->spi_data.IocPg4_dma);
drivers/message/fusion/mptbase.c
2771
ioc->spi_data.pIocPg4 = NULL;
drivers/message/fusion/mptbase.c
2772
ioc->alloc_total -= sz;
drivers/message/fusion/mptbase.c
2775
if (ioc->ReqToChain != NULL) {
drivers/message/fusion/mptbase.c
2776
kfree(ioc->ReqToChain);
drivers/message/fusion/mptbase.c
2777
kfree(ioc->RequestNB);
drivers/message/fusion/mptbase.c
2778
ioc->ReqToChain = NULL;
drivers/message/fusion/mptbase.c
2781
kfree(ioc->ChainToChain);
drivers/message/fusion/mptbase.c
2782
ioc->ChainToChain = NULL;
drivers/message/fusion/mptbase.c
2784
if (ioc->HostPageBuffer != NULL) {
drivers/message/fusion/mptbase.c
2785
if((ret = mpt_host_page_access_control(ioc,
drivers/message/fusion/mptbase.c
2789
ioc->name, __func__, ret);
drivers/message/fusion/mptbase.c
2791
dexitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
2793
ioc->name, ioc->HostPageBuffer,
drivers/message/fusion/mptbase.c
2794
ioc->HostPageBuffer_sz));
drivers/message/fusion/mptbase.c
2795
dma_free_coherent(&ioc->pcidev->dev, ioc->HostPageBuffer_sz,
drivers/message/fusion/mptbase.c
2796
ioc->HostPageBuffer, ioc->HostPageBuffer_dma);
drivers/message/fusion/mptbase.c
2797
ioc->HostPageBuffer = NULL;
drivers/message/fusion/mptbase.c
2798
ioc->HostPageBuffer_sz = 0;
drivers/message/fusion/mptbase.c
2799
ioc->alloc_total -= ioc->HostPageBuffer_sz;
drivers/message/fusion/mptbase.c
2802
pci_set_drvdata(ioc->pcidev, NULL);
drivers/message/fusion/mptbase.c
2813
mpt_adapter_dispose(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
2817
if (ioc == NULL)
drivers/message/fusion/mptbase.c
282
mpt_is_discovery_complete(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
2820
sz_first = ioc->alloc_total;
drivers/message/fusion/mptbase.c
2822
mpt_adapter_disable(ioc);
drivers/message/fusion/mptbase.c
2824
if (ioc->pci_irq != -1) {
drivers/message/fusion/mptbase.c
2825
free_irq(ioc->pci_irq, ioc);
drivers/message/fusion/mptbase.c
2826
if (ioc->msi_enable)
drivers/message/fusion/mptbase.c
2827
pci_disable_msi(ioc->pcidev);
drivers/message/fusion/mptbase.c
2828
ioc->pci_irq = -1;
drivers/message/fusion/mptbase.c
2831
if (ioc->memmap != NULL) {
drivers/message/fusion/mptbase.c
2832
iounmap(ioc->memmap);
drivers/message/fusion/mptbase.c
2833
ioc->memmap = NULL;
drivers/message/fusion/mptbase.c
2836
pci_disable_device(ioc->pcidev);
drivers/message/fusion/mptbase.c
2837
pci_release_selected_regions(ioc->pcidev, ioc->bars);
drivers/message/fusion/mptbase.c
2840
list_del(&ioc->list);
drivers/message/fusion/mptbase.c
2842
sz_last = ioc->alloc_total;
drivers/message/fusion/mptbase.c
2843
dprintk(ioc, printk(MYIOC_s_INFO_FMT "free'd %d of %d bytes\n",
drivers/message/fusion/mptbase.c
2844
ioc->name, sz_first-sz_last+(int)sizeof(*ioc), sz_first));
drivers/message/fusion/mptbase.c
2846
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
2847
ioc->alt_ioc->alt_ioc = NULL;
drivers/message/fusion/mptbase.c
2849
kfree(ioc);
drivers/message/fusion/mptbase.c
2858
MptDisplayIocCapabilities(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
2862
printk(KERN_INFO "%s: ", ioc->name);
drivers/message/fusion/mptbase.c
2863
if (ioc->prod_name)
drivers/message/fusion/mptbase.c
2864
pr_cont("%s: ", ioc->prod_name);
drivers/message/fusion/mptbase.c
2867
if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_INITIATOR) {
drivers/message/fusion/mptbase.c
2872
if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_TARGET) {
drivers/message/fusion/mptbase.c
2877
if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN) {
drivers/message/fusion/mptbase.c
2886
if (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_TARGET) {
drivers/message/fusion/mptbase.c
2911
MakeIocReady(MPT_ADAPTER *ioc, int force, int sleepFlag)
drivers/message/fusion/mptbase.c
2922
ioc_state = mpt_GetIocState(ioc, 0);
drivers/message/fusion/mptbase.c
2923
dhsprintk(ioc, printk(MYIOC_s_INFO_FMT "MakeIocReady [raw] state=%08x\n", ioc->name, ioc_state));
drivers/message/fusion/mptbase.c
2932
ioc->name);
drivers/message/fusion/mptbase.c
2938
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
2939
"IOC is in READY state\n", ioc->name));
drivers/message/fusion/mptbase.c
2949
ioc->name);
drivers/message/fusion/mptbase.c
2951
ioc->name, ioc_state & MPI_DOORBELL_DATA_MASK);
drivers/message/fusion/mptbase.c
2958
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "IOC operational unexpected\n",
drivers/message/fusion/mptbase.c
2959
ioc->name));
drivers/message/fusion/mptbase.c
2967
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
drivers/message/fusion/mptbase.c
2969
ioc->name, whoinit, statefault, force));
drivers/message/fusion/mptbase.c
2974
if ((r = SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, sleepFlag)) == 0)
drivers/message/fusion/mptbase.c
298
if ((mpt_config(ioc, &cfg)))
drivers/message/fusion/mptbase.c
2981
hard_reset_done = KickStart(ioc, statefault||force, sleepFlag);
drivers/message/fusion/mptbase.c
2991
while ((ioc_state = mpt_GetIocState(ioc, 1)) != MPI_IOC_STATE_READY) {
drivers/message/fusion/mptbase.c
2997
if ((r = SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, sleepFlag)) != 0) {
drivers/message/fusion/mptbase.c
2998
printk(MYIOC_s_ERR_FMT "IOC msg unit reset failed!\n", ioc->name);
drivers/message/fusion/mptbase.c
3006
if ((r = SendIocReset(ioc, MPI_FUNCTION_IO_UNIT_RESET, sleepFlag)) != 0) {
drivers/message/fusion/mptbase.c
3007
printk(MYIOC_s_ERR_FMT "IO unit reset failed!\n", ioc->name);
drivers/message/fusion/mptbase.c
3016
ioc->name, ioc_state, (int)((ii+5)/HZ));
drivers/message/fusion/mptbase.c
3029
printk(MYIOC_s_INFO_FMT "Recovered from %s\n", ioc->name,
drivers/message/fusion/mptbase.c
303
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptbase.c
3046
mpt_GetIocState(MPT_ADAPTER *ioc, int cooked)
drivers/message/fusion/mptbase.c
3051
s = CHIPREG_READ32(&ioc->chip->Doorbell);
drivers/message/fusion/mptbase.c
3055
ioc->last_state = sc;
drivers/message/fusion/mptbase.c
3070
GetIocFacts(MPT_ADAPTER *ioc, int sleepFlag, int reason)
drivers/message/fusion/mptbase.c
3082
if (ioc->last_state == MPI_IOC_STATE_RESET) {
drivers/message/fusion/mptbase.c
3085
ioc->name, ioc->last_state);
drivers/message/fusion/mptbase.c
3089
facts = &ioc->facts;
drivers/message/fusion/mptbase.c
3102
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
3104
ioc->name, req_sz, reply_sz));
drivers/message/fusion/mptbase.c
3109
r = mpt_handshake_req_reply_wait(ioc, req_sz, (u32*)&get_facts,
drivers/message/fusion/mptbase.c
311
if ((mpt_config(ioc, &cfg)))
drivers/message/fusion/mptbase.c
3127
if (ioc->FirstWhoInit == WHOINIT_UNKNOWN)
drivers/message/fusion/mptbase.c
3128
ioc->FirstWhoInit = facts->WhoInit;
drivers/message/fusion/mptbase.c
3159
if ((ioc->facts.ProductID & MPI_FW_HEADER_PID_PROD_MASK)
drivers/message/fusion/mptbase.c
3161
ioc->ir_firmware = 1;
drivers/message/fusion/mptbase.c
3187
ioc->name);
drivers/message/fusion/mptbase.c
319
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptbase.c
3193
ioc->NB_for_64_byte_frame = vv;
drivers/message/fusion/mptbase.c
3199
ioc->NBShiftFactor = shiftFactor;
drivers/message/fusion/mptbase.c
3200
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
3202
ioc->name, vv, shiftFactor, r));
drivers/message/fusion/mptbase.c
3209
ioc->req_sz = min(MPT_DEFAULT_FRAME_SIZE, facts->RequestFrameSize * 4);
drivers/message/fusion/mptbase.c
3210
ioc->req_depth = min_t(int, MPT_MAX_REQ_DEPTH, facts->GlobalCredits);
drivers/message/fusion/mptbase.c
3211
ioc->reply_sz = MPT_REPLY_FRAME_SIZE;
drivers/message/fusion/mptbase.c
3212
ioc->reply_depth = min_t(int, MPT_DEFAULT_REPLY_DEPTH, facts->ReplyQueueDepth);
drivers/message/fusion/mptbase.c
3214
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "reply_sz=%3d, reply_depth=%4d\n",
drivers/message/fusion/mptbase.c
3215
ioc->name, ioc->reply_sz, ioc->reply_depth));
drivers/message/fusion/mptbase.c
3216
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "req_sz =%3d, req_depth =%4d\n",
drivers/message/fusion/mptbase.c
3217
ioc->name, ioc->req_sz, ioc->req_depth));
drivers/message/fusion/mptbase.c
3220
if ( (r = GetPortFacts(ioc, 0, sleepFlag)) != 0 )
drivers/message/fusion/mptbase.c
3226
ioc->name, facts->MsgLength, (offsetof(IOCFactsReply_t,
drivers/message/fusion/mptbase.c
3244
GetPortFacts(MPT_ADAPTER *ioc, int portnum, int sleepFlag)
drivers/message/fusion/mptbase.c
3254
if (ioc->last_state == MPI_IOC_STATE_RESET) {
drivers/message/fusion/mptbase.c
3256
ioc->name, ioc->last_state );
drivers/message/fusion/mptbase.c
3260
pfacts = &ioc->pfacts[portnum];
drivers/message/fusion/mptbase.c
3274
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending get PortFacts(%d) request\n",
drivers/message/fusion/mptbase.c
3275
ioc->name, portnum));
drivers/message/fusion/mptbase.c
3280
ii = mpt_handshake_req_reply_wait(ioc, req_sz, (u32*)&get_pfacts,
drivers/message/fusion/mptbase.c
3298
max_id = (ioc->bus_type == SAS) ? pfacts->PortSCSIID :
drivers/message/fusion/mptbase.c
3300
ioc->devices_per_bus = (max_id > 255) ? 256 : max_id;
drivers/message/fusion/mptbase.c
3301
ioc->number_of_buses = (ioc->devices_per_bus < 256) ? 1 : max_id/256;
drivers/message/fusion/mptbase.c
3309
ioc->devices_per_bus = 1;
drivers/message/fusion/mptbase.c
3310
ioc->number_of_buses = (max_id > 255) ? 255 : max_id;
drivers/message/fusion/mptbase.c
3327
SendIocInit(MPT_ADAPTER *ioc, int sleepFlag)
drivers/message/fusion/mptbase.c
3346
if (ioc->facts.Flags & MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT)
drivers/message/fusion/mptbase.c
3347
ioc->upload_fw = 1;
drivers/message/fusion/mptbase.c
3349
ioc->upload_fw = 0;
drivers/message/fusion/mptbase.c
335
MPT_ADAPTER *ioc = (MPT_ADAPTER *)arg;
drivers/message/fusion/mptbase.c
3350
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "upload_fw %d facts.Flags=%x\n",
drivers/message/fusion/mptbase.c
3351
ioc->name, ioc->upload_fw, ioc->facts.Flags));
drivers/message/fusion/mptbase.c
3353
ioc_init.MaxDevices = (U8)ioc->devices_per_bus;
drivers/message/fusion/mptbase.c
3354
ioc_init.MaxBuses = (U8)ioc->number_of_buses;
drivers/message/fusion/mptbase.c
3356
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "facts.MsgVersion=%x\n",
drivers/message/fusion/mptbase.c
3357
ioc->name, ioc->facts.MsgVersion));
drivers/message/fusion/mptbase.c
3358
if (ioc->facts.MsgVersion >= MPI_VERSION_01_05) {
drivers/message/fusion/mptbase.c
3363
if (ioc->facts.Flags & MPI_IOCFACTS_FLAGS_HOST_PAGE_BUFFER_PERSISTENT) {
drivers/message/fusion/mptbase.c
3364
ioc_init.HostPageBufferSGE = ioc->facts.HostPageBufferSGE;
drivers/message/fusion/mptbase.c
3365
} else if(mpt_host_page_alloc(ioc, &ioc_init))
drivers/message/fusion/mptbase.c
3368
ioc_init.ReplyFrameSize = cpu_to_le16(ioc->reply_sz); /* in BYTES */
drivers/message/fusion/mptbase.c
3370
if (ioc->sg_addr_size == sizeof(u64)) {
drivers/message/fusion/mptbase.c
3374
ioc_init.HostMfaHighAddr = cpu_to_le32((u32)((u64)ioc->alloc_dma >> 32));
drivers/message/fusion/mptbase.c
3375
ioc_init.SenseBufferHighAddr = cpu_to_le32((u32)((u64)ioc->sense_buf_pool_dma >> 32));
drivers/message/fusion/mptbase.c
338
if (!ioc)
drivers/message/fusion/mptbase.c
3382
ioc->facts.CurrentHostMfaHighAddr = ioc_init.HostMfaHighAddr;
drivers/message/fusion/mptbase.c
3383
ioc->facts.CurrentSenseBufferHighAddr = ioc_init.SenseBufferHighAddr;
drivers/message/fusion/mptbase.c
3384
ioc->facts.MaxDevices = ioc_init.MaxDevices;
drivers/message/fusion/mptbase.c
3385
ioc->facts.MaxBuses = ioc_init.MaxBuses;
drivers/message/fusion/mptbase.c
3387
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending IOCInit (req @ %p)\n",
drivers/message/fusion/mptbase.c
3388
ioc->name, &ioc_init));
drivers/message/fusion/mptbase.c
3390
r = mpt_handshake_req_reply_wait(ioc, sizeof(IOCInit_t), (u32*)&ioc_init,
drivers/message/fusion/mptbase.c
3393
printk(MYIOC_s_ERR_FMT "Sending IOCInit failed(%d)!\n",ioc->name, r);
drivers/message/fusion/mptbase.c
3401
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending PortEnable (req @ %p)\n",
drivers/message/fusion/mptbase.c
3402
ioc->name, &ioc_init));
drivers/message/fusion/mptbase.c
3404
if ((r = SendPortEnable(ioc, 0, sleepFlag)) != 0) {
drivers/message/fusion/mptbase.c
3405
printk(MYIOC_s_ERR_FMT "Sending PortEnable failed(%d)!\n",ioc->name, r);
drivers/message/fusion/mptbase.c
341
pdev = ioc->pcidev;
drivers/message/fusion/mptbase.c
3415
state = mpt_GetIocState(ioc, 1);
drivers/message/fusion/mptbase.c
3425
ioc->name, (int)((count+5)/HZ));
drivers/message/fusion/mptbase.c
3429
state = mpt_GetIocState(ioc, 1);
drivers/message/fusion/mptbase.c
3432
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Wait IOC_OPERATIONAL state (cnt=%d)\n",
drivers/message/fusion/mptbase.c
3433
ioc->name, count));
drivers/message/fusion/mptbase.c
3435
ioc->aen_event_read_flag=0;
drivers/message/fusion/mptbase.c
3451
SendPortEnable(MPT_ADAPTER *ioc, int portnum, int sleepFlag)
drivers/message/fusion/mptbase.c
3472
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending Port(%d)Enable (req @ %p)\n",
drivers/message/fusion/mptbase.c
3473
ioc->name, portnum, &port_enable));
drivers/message/fusion/mptbase.c
3477
if (ioc->ir_firmware || ioc->bus_type == SAS) {
drivers/message/fusion/mptbase.c
3478
rc = mpt_handshake_req_reply_wait(ioc, req_sz,
drivers/message/fusion/mptbase.c
3482
rc = mpt_handshake_req_reply_wait(ioc, req_sz,
drivers/message/fusion/mptbase.c
3500
mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size)
drivers/message/fusion/mptbase.c
3504
if (ioc->cached_fw) {
drivers/message/fusion/mptbase.c
3508
else if (ioc->alt_ioc && ioc->alt_ioc->cached_fw) {
drivers/message/fusion/mptbase.c
3509
ioc->cached_fw = ioc->alt_ioc->cached_fw; /* use alt_ioc's memory */
drivers/message/fusion/mptbase.c
3510
ioc->cached_fw_dma = ioc->alt_ioc->cached_fw_dma;
drivers/message/fusion/mptbase.c
3514
ioc->cached_fw = dma_alloc_coherent(&ioc->pcidev->dev, size,
drivers/message/fusion/mptbase.c
3515
&ioc->cached_fw_dma, GFP_ATOMIC);
drivers/message/fusion/mptbase.c
3516
if (!ioc->cached_fw) {
drivers/message/fusion/mptbase.c
3518
ioc->name);
drivers/message/fusion/mptbase.c
3521
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "FW Image @ %p[%p], sz=%d[%x] bytes\n",
drivers/message/fusion/mptbase.c
3522
ioc->name, ioc->cached_fw, (void *)(ulong)ioc->cached_fw_dma, size, size));
drivers/message/fusion/mptbase.c
3523
ioc->alloc_total += size;
drivers/message/fusion/mptbase.c
3538
mpt_free_fw_memory(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
3542
if (!ioc->cached_fw)
drivers/message/fusion/mptbase.c
3545
sz = ioc->facts.FWImageSize;
drivers/message/fusion/mptbase.c
3546
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "free_fw_memory: FW Image @ %p[%p], sz=%d[%x] bytes\n",
drivers/message/fusion/mptbase.c
3547
ioc->name, ioc->cached_fw, (void *)(ulong)ioc->cached_fw_dma, sz, sz));
drivers/message/fusion/mptbase.c
3548
dma_free_coherent(&ioc->pcidev->dev, sz, ioc->cached_fw,
drivers/message/fusion/mptbase.c
3549
ioc->cached_fw_dma);
drivers/message/fusion/mptbase.c
3550
ioc->alloc_total -= sz;
drivers/message/fusion/mptbase.c
3551
ioc->cached_fw = NULL;
drivers/message/fusion/mptbase.c
3569
mpt_do_upload(MPT_ADAPTER *ioc, int sleepFlag)
drivers/message/fusion/mptbase.c
3581
if ((sz = ioc->facts.FWImageSize) == 0)
drivers/message/fusion/mptbase.c
3584
if (mpt_alloc_fw_memory(ioc, ioc->facts.FWImageSize) != 0)
drivers/message/fusion/mptbase.c
3587
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT ": FW Image @ %p[%p], sz=%d[%x] bytes\n",
drivers/message/fusion/mptbase.c
3588
ioc->name, ioc->cached_fw, (void *)(ulong)ioc->cached_fw_dma, sz, sz));
drivers/message/fusion/mptbase.c
359
MPT_ADAPTER *ioc =
drivers/message/fusion/mptbase.c
3590
prequest = (sleepFlag == NO_SLEEP) ? kzalloc(ioc->req_sz, GFP_ATOMIC) :
drivers/message/fusion/mptbase.c
3591
kzalloc(ioc->req_sz, GFP_KERNEL);
drivers/message/fusion/mptbase.c
3593
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "fw upload failed "
drivers/message/fusion/mptbase.c
3594
"while allocating memory \n", ioc->name));
drivers/message/fusion/mptbase.c
3595
mpt_free_fw_memory(ioc);
drivers/message/fusion/mptbase.c
3614
ioc->add_sge((char *)ptcsge, flagsLength, ioc->cached_fw_dma);
drivers/message/fusion/mptbase.c
3616
ioc->SGE_size;
drivers/message/fusion/mptbase.c
3617
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending FW Upload "
drivers/message/fusion/mptbase.c
3618
" (req @ %p) fw_size=%d mf_request_size=%d\n", ioc->name, prequest,
drivers/message/fusion/mptbase.c
3619
ioc->facts.FWImageSize, request_size));
drivers/message/fusion/mptbase.c
3620
DBG_DUMP_FW_REQUEST_FRAME(ioc, (u32 *)prequest);
drivers/message/fusion/mptbase.c
3622
ii = mpt_handshake_req_reply_wait(ioc, request_size, (u32 *)prequest,
drivers/message/fusion/mptbase.c
3625
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "FW Upload completed "
drivers/message/fusion/mptbase.c
3626
"rc=%x \n", ioc->name, ii));
drivers/message/fusion/mptbase.c
3637
ioc->facts.FWImageSize ==
drivers/message/fusion/mptbase.c
3641
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": do_upload cmdStatus=%d \n",
drivers/message/fusion/mptbase.c
3642
ioc->name, cmdStatus));
drivers/message/fusion/mptbase.c
3646
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "fw upload failed, "
drivers/message/fusion/mptbase.c
3647
"freeing image \n", ioc->name));
drivers/message/fusion/mptbase.c
3648
mpt_free_fw_memory(ioc);
drivers/message/fusion/mptbase.c
367
if (ioc->ioc_reset_in_progress || !ioc->active)
drivers/message/fusion/mptbase.c
3670
mpt_downloadboot(MPT_ADAPTER *ioc, MpiFwHeader_t *pFwHeader, int sleepFlag)
drivers/message/fusion/mptbase.c
3682
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot: fw size 0x%x (%d), FW Ptr %p\n",
drivers/message/fusion/mptbase.c
3683
ioc->name, pFwHeader->ImageSize, pFwHeader->ImageSize, pFwHeader));
drivers/message/fusion/mptbase.c
3685
CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
drivers/message/fusion/mptbase.c
3686
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_1ST_KEY_VALUE);
drivers/message/fusion/mptbase.c
3687
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_2ND_KEY_VALUE);
drivers/message/fusion/mptbase.c
3688
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_3RD_KEY_VALUE);
drivers/message/fusion/mptbase.c
3689
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_4TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
3690
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_5TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
3692
CHIPREG_WRITE32(&ioc->chip->Diagnostic, (MPI_DIAG_PREVENT_IOC_BOOT | MPI_DIAG_DISABLE_ARM));
drivers/message/fusion/mptbase.c
3701
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
3702
CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val | MPI_DIAG_RESET_ADAPTER);
drivers/message/fusion/mptbase.c
3705
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
3707
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RESET_ADAPTER cleared, count=%d\n",
drivers/message/fusion/mptbase.c
3708
ioc->name, count));
drivers/message/fusion/mptbase.c
371
ioc_raw_state = mpt_GetIocState(ioc, 0);
drivers/message/fusion/mptbase.c
3720
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot failed! "
drivers/message/fusion/mptbase.c
3722
ioc->name, diag0val));
drivers/message/fusion/mptbase.c
3726
CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
drivers/message/fusion/mptbase.c
3727
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_1ST_KEY_VALUE);
drivers/message/fusion/mptbase.c
3728
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_2ND_KEY_VALUE);
drivers/message/fusion/mptbase.c
3729
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_3RD_KEY_VALUE);
drivers/message/fusion/mptbase.c
3730
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_4TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
3731
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_5TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
3734
CHIPREG_WRITE32(&ioc->chip->Diagnostic, (MPI_DIAG_RW_ENABLE | MPI_DIAG_DISABLE_ARM));
drivers/message/fusion/mptbase.c
374
ioc->name, __func__);
drivers/message/fusion/mptbase.c
3742
if (ioc->errata_flag_1064)
drivers/message/fusion/mptbase.c
3743
pci_enable_io_access(ioc->pcidev);
drivers/message/fusion/mptbase.c
3745
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, pFwHeader->LoadStartAddress);
drivers/message/fusion/mptbase.c
3746
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "LoadStart addr written 0x%x \n",
drivers/message/fusion/mptbase.c
3747
ioc->name, pFwHeader->LoadStartAddress));
drivers/message/fusion/mptbase.c
3749
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write FW Image: 0x%x bytes @ %p\n",
drivers/message/fusion/mptbase.c
3750
ioc->name, fwSize*4, ptrFw));
drivers/message/fusion/mptbase.c
3752
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, *ptrFw++);
drivers/message/fusion/mptbase.c
3764
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write Ext Image: 0x%x (%d) bytes @ %p load_addr=%x\n",
drivers/message/fusion/mptbase.c
3765
ioc->name, fwSize*4, fwSize*4, ptrFw, load_addr));
drivers/message/fusion/mptbase.c
3766
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, load_addr);
drivers/message/fusion/mptbase.c
3769
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, *ptrFw++);
drivers/message/fusion/mptbase.c
3775
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write IopResetVector Addr=%x! \n", ioc->name, pFwHeader->IopResetRegAddr));
drivers/message/fusion/mptbase.c
3776
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, pFwHeader->IopResetRegAddr);
drivers/message/fusion/mptbase.c
3779
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Write IopResetVector Value=%x! \n", ioc->name, pFwHeader->IopResetVectorValue));
drivers/message/fusion/mptbase.c
3780
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, pFwHeader->IopResetVectorValue);
drivers/message/fusion/mptbase.c
3785
if (ioc->bus_type == SPI) {
drivers/message/fusion/mptbase.c
3790
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, 0x3F000000);
drivers/message/fusion/mptbase.c
3791
diagRwData = CHIPREG_PIO_READ32(&ioc->pio_chip->DiagRwData);
drivers/message/fusion/mptbase.c
3793
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwAddress, 0x3F000000);
drivers/message/fusion/mptbase.c
3794
CHIPREG_PIO_WRITE32(&ioc->pio_chip->DiagRwData, diagRwData);
drivers/message/fusion/mptbase.c
3797
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
3798
CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val |
drivers/message/fusion/mptbase.c
3809
if (ioc->errata_flag_1064)
drivers/message/fusion/mptbase.c
3810
pci_disable_io_access(ioc->pcidev);
drivers/message/fusion/mptbase.c
3812
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
3813
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot diag0val=%x, "
drivers/message/fusion/mptbase.c
3815
ioc->name, diag0val));
drivers/message/fusion/mptbase.c
3817
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "downloadboot now diag0val=%x\n",
drivers/message/fusion/mptbase.c
3818
ioc->name, diag0val));
drivers/message/fusion/mptbase.c
3819
CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val);
drivers/message/fusion/mptbase.c
3822
CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
drivers/message/fusion/mptbase.c
3824
if (ioc->bus_type == SAS) {
drivers/message/fusion/mptbase.c
3825
ioc_state = mpt_GetIocState(ioc, 0);
drivers/message/fusion/mptbase.c
3826
if ( (GetIocFacts(ioc, sleepFlag,
drivers/message/fusion/mptbase.c
3828
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "GetIocFacts failed: IocState=%x\n",
drivers/message/fusion/mptbase.c
3829
ioc->name, ioc_state));
drivers/message/fusion/mptbase.c
383
hd = shost_priv(ioc->sh);
drivers/message/fusion/mptbase.c
3835
if ((ioc_state = mpt_GetIocState(ioc, 0)) & MPI_IOC_STATE_READY) {
drivers/message/fusion/mptbase.c
3836
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
3838
ioc->name, count, ioc_state));
drivers/message/fusion/mptbase.c
3839
if (ioc->bus_type == SAS) {
drivers/message/fusion/mptbase.c
384
ioc->schedule_dead_ioc_flush_running_cmds(hd);
drivers/message/fusion/mptbase.c
3842
if ((SendIocInit(ioc, sleepFlag)) != 0) {
drivers/message/fusion/mptbase.c
3843
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
3845
ioc->name));
drivers/message/fusion/mptbase.c
3848
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
3850
ioc->name));
drivers/message/fusion/mptbase.c
3859
ddlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
3860
"downloadboot failed! IocState=%x\n",ioc->name, ioc_state));
drivers/message/fusion/mptbase.c
387
p = kthread_run(mpt_remove_dead_ioc_func, ioc,
drivers/message/fusion/mptbase.c
388
"mpt_dead_ioc_%d", ioc->id);
drivers/message/fusion/mptbase.c
3891
KickStart(MPT_ADAPTER *ioc, int force, int sleepFlag)
drivers/message/fusion/mptbase.c
3897
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "KickStarting!\n", ioc->name));
drivers/message/fusion/mptbase.c
3898
if (ioc->bus_type == SPI) {
drivers/message/fusion/mptbase.c
3902
SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, sleepFlag);
drivers/message/fusion/mptbase.c
3911
hard_reset_done = mpt_diag_reset(ioc, force, sleepFlag);
drivers/message/fusion/mptbase.c
3915
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Diagnostic reset successful!\n",
drivers/message/fusion/mptbase.c
3916
ioc->name));
drivers/message/fusion/mptbase.c
392
ioc->name, __func__);
drivers/message/fusion/mptbase.c
3920
ioc_state = mpt_GetIocState(ioc, 1);
drivers/message/fusion/mptbase.c
3922
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "KickStart successful! (cnt=%d)\n",
drivers/message/fusion/mptbase.c
3923
ioc->name, cnt));
drivers/message/fusion/mptbase.c
3933
dinitprintk(ioc, printk(MYIOC_s_ERR_FMT "Failed to come READY after reset! IocState=%x\n",
drivers/message/fusion/mptbase.c
3934
ioc->name, mpt_GetIocState(ioc, 0)));
drivers/message/fusion/mptbase.c
3958
mpt_diag_reset(MPT_ADAPTER *ioc, int ignore, int sleepFlag)
drivers/message/fusion/mptbase.c
396
ioc->name, __func__);
drivers/message/fusion/mptbase.c
3969
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
3971
if (ioc->pcidev->device == MPI_MANUFACTPAGE_DEVID_SAS1078) {
drivers/message/fusion/mptbase.c
3976
drsprintk(ioc, printk(MYIOC_s_WARN_FMT "%s: Doorbell=%p; 1078 reset "
drivers/message/fusion/mptbase.c
3977
"address=%p\n", ioc->name, __func__,
drivers/message/fusion/mptbase.c
3978
&ioc->chip->Doorbell, &ioc->chip->Reset_1078));
drivers/message/fusion/mptbase.c
3979
CHIPREG_WRITE32(&ioc->chip->Reset_1078, 0x07);
drivers/message/fusion/mptbase.c
3993
(*(MptResetHandlers[cb_idx]))(ioc,
drivers/message/fusion/mptbase.c
3998
doorbell = CHIPREG_READ32(&ioc->chip->Doorbell);
drivers/message/fusion/mptbase.c
4001
drsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
4004
ioc->name, doorbell, count));
drivers/message/fusion/mptbase.c
4020
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4022
if (ioc->debug_level & MPT_DEBUG) {
drivers/message/fusion/mptbase.c
4023
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
4024
diag1val = CHIPREG_READ32(&ioc->alt_ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4025
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "DbG1: diag0=%08x, diag1=%08x\n",
drivers/message/fusion/mptbase.c
4026
ioc->name, diag0val, diag1val));
drivers/message/fusion/mptbase.c
4037
CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
drivers/message/fusion/mptbase.c
4038
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_1ST_KEY_VALUE);
drivers/message/fusion/mptbase.c
4039
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_2ND_KEY_VALUE);
drivers/message/fusion/mptbase.c
404
ioc->name, ioc_raw_state & MPI_DOORBELL_DATA_MASK);
drivers/message/fusion/mptbase.c
4040
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_3RD_KEY_VALUE);
drivers/message/fusion/mptbase.c
4041
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_4TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
4042
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_5TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
4054
ioc->name, diag0val);
drivers/message/fusion/mptbase.c
4059
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
406
ioc->name, __func__);
drivers/message/fusion/mptbase.c
4061
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Wrote magic DiagWriteEn sequence (%x)\n",
drivers/message/fusion/mptbase.c
4062
ioc->name, diag0val));
drivers/message/fusion/mptbase.c
4065
if (ioc->debug_level & MPT_DEBUG) {
drivers/message/fusion/mptbase.c
4066
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
4067
diag1val = CHIPREG_READ32(&ioc->alt_ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4068
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "DbG2: diag0=%08x, diag1=%08x\n",
drivers/message/fusion/mptbase.c
4069
ioc->name, diag0val, diag1val));
drivers/message/fusion/mptbase.c
407
rc = mpt_HardResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptbase.c
4075
CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val | MPI_DIAG_DISABLE_ARM);
drivers/message/fusion/mptbase.c
408
printk(MYIOC_s_WARN_FMT "%s: HardReset: %s\n", ioc->name,
drivers/message/fusion/mptbase.c
4082
CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val | MPI_DIAG_RESET_ADAPTER);
drivers/message/fusion/mptbase.c
4084
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Diagnostic reset performed\n",
drivers/message/fusion/mptbase.c
4085
ioc->name));
drivers/message/fusion/mptbase.c
4096
ioc, MPT_IOC_PRE_RESET);
drivers/message/fusion/mptbase.c
4097
if (ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
4099
ioc->alt_ioc, MPT_IOC_PRE_RESET);
drivers/message/fusion/mptbase.c
410
ioc_raw_state = mpt_GetIocState(ioc, 0);
drivers/message/fusion/mptbase.c
4104
if (ioc->cached_fw)
drivers/message/fusion/mptbase.c
4105
cached_fw = (MpiFwHeader_t *)ioc->cached_fw;
drivers/message/fusion/mptbase.c
4106
else if (ioc->alt_ioc && ioc->alt_ioc->cached_fw)
drivers/message/fusion/mptbase.c
4107
cached_fw = (MpiFwHeader_t *)ioc->alt_ioc->cached_fw;
drivers/message/fusion/mptbase.c
4116
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4121
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "cached_fw: diag0val=%x count=%d\n",
drivers/message/fusion/mptbase.c
4122
ioc->name, diag0val, count));
drivers/message/fusion/mptbase.c
413
"reset (%04xh)\n", ioc->name, ioc_raw_state &
drivers/message/fusion/mptbase.c
4130
if ((count = mpt_downloadboot(ioc, cached_fw, sleepFlag)) < 0) {
drivers/message/fusion/mptbase.c
4132
"firmware downloadboot failure (%d)!\n", ioc->name, count);
drivers/message/fusion/mptbase.c
4143
doorbell = CHIPREG_READ32(&ioc->chip->Doorbell);
drivers/message/fusion/mptbase.c
4146
drsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
4148
" count=%d\n", ioc->name, doorbell, count));
drivers/message/fusion/mptbase.c
415
} else if (ioc->bus_type == SAS && ioc->sas_discovery_quiesce_io) {
drivers/message/fusion/mptbase.c
416
if ((mpt_is_discovery_complete(ioc))) {
drivers/message/fusion/mptbase.c
4164
"after reset! IocState=%x", ioc->name,
drivers/message/fusion/mptbase.c
4169
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
417
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "clearing "
drivers/message/fusion/mptbase.c
4170
if (ioc->debug_level & MPT_DEBUG) {
drivers/message/fusion/mptbase.c
4171
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
4172
diag1val = CHIPREG_READ32(&ioc->alt_ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4173
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "DbG3: diag0=%08x, diag1=%08x\n",
drivers/message/fusion/mptbase.c
4174
ioc->name, diag0val, diag1val));
drivers/message/fusion/mptbase.c
418
"discovery_quiesce_io flag\n", ioc->name));
drivers/message/fusion/mptbase.c
4180
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4186
CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFF);
drivers/message/fusion/mptbase.c
4187
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_1ST_KEY_VALUE);
drivers/message/fusion/mptbase.c
4188
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_2ND_KEY_VALUE);
drivers/message/fusion/mptbase.c
4189
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_3RD_KEY_VALUE);
drivers/message/fusion/mptbase.c
419
ioc->sas_discovery_quiesce_io = 0;
drivers/message/fusion/mptbase.c
4190
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_4TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
4191
CHIPREG_WRITE32(&ioc->chip->WriteSequence, MPI_WRSEQ_5TH_KEY_VALUE);
drivers/message/fusion/mptbase.c
4203
ioc->name, diag0val);
drivers/message/fusion/mptbase.c
4206
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4209
CHIPREG_WRITE32(&ioc->chip->Diagnostic, diag0val);
drivers/message/fusion/mptbase.c
4210
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4213
ioc->name);
drivers/message/fusion/mptbase.c
4218
CHIPREG_WRITE32(&ioc->chip->WriteSequence, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
4222
diag0val = CHIPREG_READ32(&ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4225
ioc->name, diag0val);
drivers/message/fusion/mptbase.c
4229
if (ioc->debug_level & MPT_DEBUG) {
drivers/message/fusion/mptbase.c
4230
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
4231
diag1val = CHIPREG_READ32(&ioc->alt_ioc->chip->Diagnostic);
drivers/message/fusion/mptbase.c
4232
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "DbG4: diag0=%08x, diag1=%08x\n",
drivers/message/fusion/mptbase.c
4233
ioc->name, diag0val, diag1val));
drivers/message/fusion/mptbase.c
4239
ioc->facts.EventState = 0;
drivers/message/fusion/mptbase.c
4241
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
4242
ioc->alt_ioc->facts.EventState = 0;
drivers/message/fusion/mptbase.c
4260
SendIocReset(MPT_ADAPTER *ioc, u8 reset_type, int sleepFlag)
drivers/message/fusion/mptbase.c
4266
drsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending IOC reset(0x%02x)!\n",
drivers/message/fusion/mptbase.c
4267
ioc->name, reset_type));
drivers/message/fusion/mptbase.c
4268
CHIPREG_WRITE32(&ioc->chip->Doorbell, reset_type<<MPI_DOORBELL_FUNCTION_SHIFT);
drivers/message/fusion/mptbase.c
4269
if ((r = WaitForDoorbellAck(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
427
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
4277
while ((state = mpt_GetIocState(ioc, 1)) != MPI_IOC_STATE_READY) {
drivers/message/fusion/mptbase.c
428
ioc = ioc->alt_ioc;
drivers/message/fusion/mptbase.c
4286
ioc->name, state, (int)((count+5)/HZ));
drivers/message/fusion/mptbase.c
4301
if (ioc->facts.Function)
drivers/message/fusion/mptbase.c
4302
ioc->facts.EventState = 0;
drivers/message/fusion/mptbase.c
431
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
4316
initChainBuffers(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
432
if (ioc->reset_work_q)
drivers/message/fusion/mptbase.c
4325
if (ioc->ReqToChain == NULL) {
drivers/message/fusion/mptbase.c
4326
sz = ioc->req_depth * sizeof(int);
drivers/message/fusion/mptbase.c
433
queue_delayed_work(ioc->reset_work_q, &ioc->fault_reset_work,
drivers/message/fusion/mptbase.c
4331
ioc->ReqToChain = (int *) mem;
drivers/message/fusion/mptbase.c
4332
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ReqToChain alloc @ %p, sz=%d bytes\n",
drivers/message/fusion/mptbase.c
4333
ioc->name, mem, sz));
drivers/message/fusion/mptbase.c
4338
ioc->RequestNB = (int *) mem;
drivers/message/fusion/mptbase.c
4339
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RequestNB alloc @ %p, sz=%d bytes\n",
drivers/message/fusion/mptbase.c
4340
ioc->name, mem, sz));
drivers/message/fusion/mptbase.c
4342
for (ii = 0; ii < ioc->req_depth; ii++) {
drivers/message/fusion/mptbase.c
4343
ioc->ReqToChain[ii] = MPT_HOST_NO_CHAIN;
drivers/message/fusion/mptbase.c
435
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
4356
scale = ioc->req_sz / ioc->SGE_size;
drivers/message/fusion/mptbase.c
4357
if (ioc->sg_addr_size == sizeof(u64))
drivers/message/fusion/mptbase.c
4358
num_sge = scale + (ioc->req_sz - 60) / ioc->SGE_size;
drivers/message/fusion/mptbase.c
4360
num_sge = 1 + scale + (ioc->req_sz - 64) / ioc->SGE_size;
drivers/message/fusion/mptbase.c
4362
if (ioc->sg_addr_size == sizeof(u64)) {
drivers/message/fusion/mptbase.c
4363
numSGE = (scale - 1) * (ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptbase.c
4364
(ioc->req_sz - 60) / ioc->SGE_size;
drivers/message/fusion/mptbase.c
4366
numSGE = 1 + (scale - 1) * (ioc->facts.MaxChainDepth-1) +
drivers/message/fusion/mptbase.c
4367
scale + (ioc->req_sz - 64) / ioc->SGE_size;
drivers/message/fusion/mptbase.c
4369
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "num_sge=%d numSGE=%d\n",
drivers/message/fusion/mptbase.c
4370
ioc->name, num_sge, numSGE));
drivers/message/fusion/mptbase.c
4372
if (ioc->bus_type == FC) {
drivers/message/fusion/mptbase.c
4387
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Now numSGE=%d num_sge=%d num_chain=%d\n",
drivers/message/fusion/mptbase.c
4388
ioc->name, numSGE, num_sge, num_chain));
drivers/message/fusion/mptbase.c
4390
if (ioc->bus_type == SPI)
drivers/message/fusion/mptbase.c
4392
else if (ioc->bus_type == SAS)
drivers/message/fusion/mptbase.c
4397
ioc->num_chain = num_chain;
drivers/message/fusion/mptbase.c
4400
if (ioc->ChainToChain == NULL) {
drivers/message/fusion/mptbase.c
4405
ioc->ChainToChain = (int *) mem;
drivers/message/fusion/mptbase.c
4406
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ChainToChain alloc @ %p, sz=%d bytes\n",
drivers/message/fusion/mptbase.c
4407
ioc->name, mem, sz));
drivers/message/fusion/mptbase.c
4409
mem = (u8 *) ioc->ChainToChain;
drivers/message/fusion/mptbase.c
4427
PrimeIocFifos(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
443
mpt_turbo_reply(MPT_ADAPTER *ioc, u32 pa)
drivers/message/fusion/mptbase.c
4440
if (ioc->reply_frames == NULL) {
drivers/message/fusion/mptbase.c
4441
if ( (num_chain = initChainBuffers(ioc)) < 0)
drivers/message/fusion/mptbase.c
4446
if (ioc->pcidev->device == MPI_MANUFACTPAGE_DEVID_SAS1078 &&
drivers/message/fusion/mptbase.c
4447
ioc->dma_mask > DMA_BIT_MASK(35)) {
drivers/message/fusion/mptbase.c
4448
if (!dma_set_mask(&ioc->pcidev->dev, DMA_BIT_MASK(32))
drivers/message/fusion/mptbase.c
4449
&& !dma_set_coherent_mask(&ioc->pcidev->dev, DMA_BIT_MASK(32))) {
drivers/message/fusion/mptbase.c
4451
d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
4454
ioc->name));
drivers/message/fusion/mptbase.c
4457
dma_set_mask(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
4459
dma_set_coherent_mask(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
4465
ioc->name);
drivers/message/fusion/mptbase.c
4470
total_size = reply_sz = (ioc->reply_sz * ioc->reply_depth);
drivers/message/fusion/mptbase.c
4471
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ReplyBuffer sz=%d bytes, ReplyDepth=%d\n",
drivers/message/fusion/mptbase.c
4472
ioc->name, ioc->reply_sz, ioc->reply_depth));
drivers/message/fusion/mptbase.c
4473
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ReplyBuffer sz=%d[%x] bytes\n",
drivers/message/fusion/mptbase.c
4474
ioc->name, reply_sz, reply_sz));
drivers/message/fusion/mptbase.c
4476
sz = (ioc->req_sz * ioc->req_depth);
drivers/message/fusion/mptbase.c
4477
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RequestBuffer sz=%d bytes, RequestDepth=%d\n",
drivers/message/fusion/mptbase.c
4478
ioc->name, ioc->req_sz, ioc->req_depth));
drivers/message/fusion/mptbase.c
4479
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RequestBuffer sz=%d[%x] bytes\n",
drivers/message/fusion/mptbase.c
4480
ioc->name, sz, sz));
drivers/message/fusion/mptbase.c
4483
sz = num_chain * ioc->req_sz; /* chain buffer pool size */
drivers/message/fusion/mptbase.c
4484
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ChainBuffer sz=%d bytes, ChainDepth=%d\n",
drivers/message/fusion/mptbase.c
4485
ioc->name, ioc->req_sz, num_chain));
drivers/message/fusion/mptbase.c
4486
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ChainBuffer sz=%d[%x] bytes num_chain=%d\n",
drivers/message/fusion/mptbase.c
4487
ioc->name, sz, sz, num_chain));
drivers/message/fusion/mptbase.c
4490
mem = dma_alloc_coherent(&ioc->pcidev->dev, total_size,
drivers/message/fusion/mptbase.c
4494
ioc->name);
drivers/message/fusion/mptbase.c
4498
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Total alloc @ %p[%p], sz=%d[%x] bytes\n",
drivers/message/fusion/mptbase.c
4499
ioc->name, mem, (void *)(ulong)alloc_dma, total_size, total_size));
drivers/message/fusion/mptbase.c
450
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Got TURBO reply req_idx=%08x\n",
drivers/message/fusion/mptbase.c
4502
ioc->alloc_total += total_size;
drivers/message/fusion/mptbase.c
4503
ioc->alloc = mem;
drivers/message/fusion/mptbase.c
4504
ioc->alloc_dma = alloc_dma;
drivers/message/fusion/mptbase.c
4505
ioc->alloc_sz = total_size;
drivers/message/fusion/mptbase.c
4506
ioc->reply_frames = (MPT_FRAME_HDR *) mem;
drivers/message/fusion/mptbase.c
4507
ioc->reply_frames_low_dma = (u32) (alloc_dma & 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
4509
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ReplyBuffers @ %p[%p]\n",
drivers/message/fusion/mptbase.c
451
ioc->name, pa));
drivers/message/fusion/mptbase.c
4510
ioc->name, ioc->reply_frames, (void *)(ulong)alloc_dma));
drivers/message/fusion/mptbase.c
4517
ioc->req_frames = (MPT_FRAME_HDR *) mem;
drivers/message/fusion/mptbase.c
4518
ioc->req_frames_dma = alloc_dma;
drivers/message/fusion/mptbase.c
4520
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RequestBuffers @ %p[%p]\n",
drivers/message/fusion/mptbase.c
4521
ioc->name, mem, (void *)(ulong)alloc_dma));
drivers/message/fusion/mptbase.c
4523
ioc->req_frames_low_dma = (u32) (alloc_dma & 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
4525
for (i = 0; i < ioc->req_depth; i++) {
drivers/message/fusion/mptbase.c
4526
alloc_dma += ioc->req_sz;
drivers/message/fusion/mptbase.c
4527
mem += ioc->req_sz;
drivers/message/fusion/mptbase.c
4530
ioc->ChainBuffer = mem;
drivers/message/fusion/mptbase.c
4531
ioc->ChainBufferDMA = alloc_dma;
drivers/message/fusion/mptbase.c
4533
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ChainBuffers @ %p(%p)\n",
drivers/message/fusion/mptbase.c
4534
ioc->name, ioc->ChainBuffer, (void *)(ulong)ioc->ChainBufferDMA));
drivers/message/fusion/mptbase.c
4539
INIT_LIST_HEAD(&ioc->FreeChainQ);
drivers/message/fusion/mptbase.c
4543
mem = (u8 *)ioc->ChainBuffer;
drivers/message/fusion/mptbase.c
4546
list_add_tail(&mf->u.frame.linkage.list, &ioc->FreeChainQ);
drivers/message/fusion/mptbase.c
4547
mem += ioc->req_sz;
drivers/message/fusion/mptbase.c
4552
alloc_dma = ioc->req_frames_dma;
drivers/message/fusion/mptbase.c
4553
mem = (u8 *) ioc->req_frames;
drivers/message/fusion/mptbase.c
4555
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptbase.c
4556
INIT_LIST_HEAD(&ioc->FreeQ);
drivers/message/fusion/mptbase.c
4557
for (i = 0; i < ioc->req_depth; i++) {
drivers/message/fusion/mptbase.c
4561
list_add_tail(&mf->u.frame.linkage.list, &ioc->FreeQ);
drivers/message/fusion/mptbase.c
4563
mem += ioc->req_sz;
drivers/message/fusion/mptbase.c
4565
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptbase.c
4567
sz = (ioc->req_depth * MPT_SENSE_BUFFER_ALLOC);
drivers/message/fusion/mptbase.c
4568
ioc->sense_buf_pool = dma_alloc_coherent(&ioc->pcidev->dev, sz,
drivers/message/fusion/mptbase.c
4569
&ioc->sense_buf_pool_dma, GFP_KERNEL);
drivers/message/fusion/mptbase.c
457
mf = MPT_INDEX_2_MFPTR(ioc, req_idx);
drivers/message/fusion/mptbase.c
4570
if (ioc->sense_buf_pool == NULL) {
drivers/message/fusion/mptbase.c
4572
ioc->name);
drivers/message/fusion/mptbase.c
4576
ioc->sense_buf_low_dma = (u32) (ioc->sense_buf_pool_dma & 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
4577
ioc->alloc_total += sz;
drivers/message/fusion/mptbase.c
4578
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SenseBuffers @ %p[%p]\n",
drivers/message/fusion/mptbase.c
4579
ioc->name, ioc->sense_buf_pool, (void *)(ulong)ioc->sense_buf_pool_dma));
drivers/message/fusion/mptbase.c
4585
alloc_dma = ioc->alloc_dma;
drivers/message/fusion/mptbase.c
4586
dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ReplyBuffers @ %p[%p]\n",
drivers/message/fusion/mptbase.c
4587
ioc->name, ioc->reply_frames, (void *)(ulong)alloc_dma));
drivers/message/fusion/mptbase.c
4589
for (i = 0; i < ioc->reply_depth; i++) {
drivers/message/fusion/mptbase.c
4591
CHIPREG_WRITE32(&ioc->chip->ReplyFifo, alloc_dma);
drivers/message/fusion/mptbase.c
4592
alloc_dma += ioc->reply_sz;
drivers/message/fusion/mptbase.c
4595
if (dma_mask == DMA_BIT_MASK(35) && !dma_set_mask(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
4596
ioc->dma_mask) && !dma_set_coherent_mask(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
4597
ioc->dma_mask))
drivers/message/fusion/mptbase.c
4598
d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
4599
"restoring 64 bit addressing\n", ioc->name));
drivers/message/fusion/mptbase.c
4605
if (ioc->alloc != NULL) {
drivers/message/fusion/mptbase.c
4606
sz = ioc->alloc_sz;
drivers/message/fusion/mptbase.c
4607
dma_free_coherent(&ioc->pcidev->dev, sz, ioc->alloc,
drivers/message/fusion/mptbase.c
4608
ioc->alloc_dma);
drivers/message/fusion/mptbase.c
4609
ioc->reply_frames = NULL;
drivers/message/fusion/mptbase.c
4610
ioc->req_frames = NULL;
drivers/message/fusion/mptbase.c
4611
ioc->alloc_total -= sz;
drivers/message/fusion/mptbase.c
4613
if (ioc->sense_buf_pool != NULL) {
drivers/message/fusion/mptbase.c
4614
sz = (ioc->req_depth * MPT_SENSE_BUFFER_ALLOC);
drivers/message/fusion/mptbase.c
4615
dma_free_coherent(&ioc->pcidev->dev, sz, ioc->sense_buf_pool,
drivers/message/fusion/mptbase.c
4616
ioc->sense_buf_pool_dma);
drivers/message/fusion/mptbase.c
4617
ioc->sense_buf_pool = NULL;
drivers/message/fusion/mptbase.c
4620
if (dma_mask == DMA_BIT_MASK(35) && !dma_set_mask(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
4621
DMA_BIT_MASK(64)) && !dma_set_coherent_mask(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
4623
d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
4624
"restoring 64 bit addressing\n", ioc->name));
drivers/message/fusion/mptbase.c
4649
mpt_handshake_req_reply_wait(MPT_ADAPTER *ioc, int reqBytes, u32 *req,
drivers/message/fusion/mptbase.c
4659
ioc->hs_reply_idx = 0;
drivers/message/fusion/mptbase.c
4660
mptReply = (MPIDefaultReply_t *) ioc->hs_reply;
drivers/message/fusion/mptbase.c
4668
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
4669
CHIPREG_WRITE32(&ioc->chip->Doorbell,
drivers/message/fusion/mptbase.c
4676
if ((t = WaitForDoorbellInt(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4679
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "HandShake request start reqBytes=%d, WaitCnt=%d%s\n",
drivers/message/fusion/mptbase.c
4680
ioc->name, reqBytes, t, failcnt ? " - MISSING DOORBELL HANDSHAKE!" : ""));
drivers/message/fusion/mptbase.c
4683
if (!(CHIPREG_READ32(&ioc->chip->Doorbell) & MPI_DOORBELL_ACTIVE))
drivers/message/fusion/mptbase.c
4691
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
4692
if (!failcnt && (t = WaitForDoorbellAck(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4709
CHIPREG_WRITE32(&ioc->chip->Doorbell, word);
drivers/message/fusion/mptbase.c
4710
if ((t = WaitForDoorbellAck(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4714
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Handshake request frame (@%p) header\n", ioc->name, req));
drivers/message/fusion/mptbase.c
4715
DBG_DUMP_REQUEST_FRAME_HDR(ioc, (u32 *)req);
drivers/message/fusion/mptbase.c
4717
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "HandShake request post done, WaitCnt=%d%s\n",
drivers/message/fusion/mptbase.c
4718
ioc->name, t, failcnt ? " - MISSING DOORBELL ACK!" : ""));
drivers/message/fusion/mptbase.c
472
mf = MPT_INDEX_2_MFPTR(ioc, req_idx);
drivers/message/fusion/mptbase.c
4723
if (!failcnt && (t = WaitForDoorbellReply(ioc, maxwait, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4726
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "HandShake reply count=%d%s\n",
drivers/message/fusion/mptbase.c
4727
ioc->name, t, failcnt ? " - MISSING DOORBELL REPLY!" : ""));
drivers/message/fusion/mptbase.c
473
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptbase.c
4733
u16reply[ii] = ioc->hs_reply[ii];
drivers/message/fusion/mptbase.c
4755
WaitForDoorbellAck(MPT_ADAPTER *ioc, int howlong, int sleepFlag)
drivers/message/fusion/mptbase.c
4766
intstat = CHIPREG_READ32(&ioc->chip->IntStatus);
drivers/message/fusion/mptbase.c
4774
intstat = CHIPREG_READ32(&ioc->chip->IntStatus);
drivers/message/fusion/mptbase.c
4782
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "WaitForDoorbell ACK (count=%d)\n",
drivers/message/fusion/mptbase.c
4783
ioc->name, count));
drivers/message/fusion/mptbase.c
4788
ioc->name, count, intstat);
drivers/message/fusion/mptbase.c
4805
WaitForDoorbellInt(MPT_ADAPTER *ioc, int howlong, int sleepFlag)
drivers/message/fusion/mptbase.c
4814
intstat = CHIPREG_READ32(&ioc->chip->IntStatus);
drivers/message/fusion/mptbase.c
4822
intstat = CHIPREG_READ32(&ioc->chip->IntStatus);
drivers/message/fusion/mptbase.c
4831
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "WaitForDoorbell INT (cnt=%d) howlong=%d\n",
drivers/message/fusion/mptbase.c
4832
ioc->name, count, howlong));
drivers/message/fusion/mptbase.c
4837
ioc->name, count, intstat);
drivers/message/fusion/mptbase.c
4855
WaitForDoorbellReply(MPT_ADAPTER *ioc, int howlong, int sleepFlag)
drivers/message/fusion/mptbase.c
4860
u16 *hs_reply = ioc->hs_reply;
drivers/message/fusion/mptbase.c
4861
volatile MPIDefaultReply_t *mptReply = (MPIDefaultReply_t *) ioc->hs_reply;
drivers/message/fusion/mptbase.c
4870
if ((t = WaitForDoorbellInt(ioc, howlong, sleepFlag)) < 0) {
drivers/message/fusion/mptbase.c
4873
hs_reply[u16cnt++] = le16_to_cpu(CHIPREG_READ32(&ioc->chip->Doorbell) & 0x0000FFFF);
drivers/message/fusion/mptbase.c
4874
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
4875
if ((t = WaitForDoorbellInt(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4878
hs_reply[u16cnt++] = le16_to_cpu(CHIPREG_READ32(&ioc->chip->Doorbell) & 0x0000FFFF);
drivers/message/fusion/mptbase.c
4879
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
4883
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "WaitCnt=%d First handshake reply word=%08x%s\n",
drivers/message/fusion/mptbase.c
4884
ioc->name, t, le32_to_cpu(*(u32 *)hs_reply),
drivers/message/fusion/mptbase.c
4892
if ((t = WaitForDoorbellInt(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4894
hword = le16_to_cpu(CHIPREG_READ32(&ioc->chip->Doorbell) & 0x0000FFFF);
drivers/message/fusion/mptbase.c
4896
if (u16cnt < ARRAY_SIZE(ioc->hs_reply))
drivers/message/fusion/mptbase.c
4898
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
4901
if (!failcnt && (t = WaitForDoorbellInt(ioc, 5, sleepFlag)) < 0)
drivers/message/fusion/mptbase.c
4903
CHIPREG_WRITE32(&ioc->chip->IntStatus, 0);
drivers/message/fusion/mptbase.c
4907
ioc->name);
drivers/message/fusion/mptbase.c
4919
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Got Handshake reply:\n", ioc->name));
drivers/message/fusion/mptbase.c
492
__func__, ioc->name, cb_idx);
drivers/message/fusion/mptbase.c
4920
DBG_DUMP_REPLY_FRAME(ioc, (u32 *)mptReply);
drivers/message/fusion/mptbase.c
4922
dhsprintk(ioc, printk(MYIOC_s_DEBUG_FMT "WaitForDoorbell REPLY WaitCnt=%d (sz=%d)\n",
drivers/message/fusion/mptbase.c
4923
ioc->name, t, u16cnt/2));
drivers/message/fusion/mptbase.c
4939
GetLanConfigPages(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
496
if (MptCallbacks[cb_idx](ioc, mf, mr))
drivers/message/fusion/mptbase.c
4963
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptbase.c
4968
ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptbase.c
497
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptbase.c
4976
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptbase.c
4979
memcpy(&ioc->lan_cnfg_page0, ppage0_alloc, copy_sz);
drivers/message/fusion/mptbase.c
4983
dma_free_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptbase.c
5008
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptbase.c
5016
ppage1_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptbase.c
5023
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptbase.c
5026
memcpy(&ioc->lan_cnfg_page1, ppage1_alloc, copy_sz);
drivers/message/fusion/mptbase.c
5029
dma_free_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptbase.c
503
mpt_reply(MPT_ADAPTER *ioc, u32 pa)
drivers/message/fusion/mptbase.c
5061
mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode)
drivers/message/fusion/mptbase.c
5070
mutex_lock(&ioc->mptbase_cmds.mutex);
drivers/message/fusion/mptbase.c
5073
memset(ioc->mptbase_cmds.reply, 0 , MPT_DEFAULT_FRAME_SIZE);
drivers/message/fusion/mptbase.c
5074
INITIALIZE_MGMT_STATUS(ioc->mptbase_cmds.status)
drivers/message/fusion/mptbase.c
5093
if ((mf = mpt_get_msg_frame(mpt_base_index, ioc)) == NULL) {
drivers/message/fusion/mptbase.c
5106
mpt_put_msg_frame(mpt_base_index, ioc, mf);
drivers/message/fusion/mptbase.c
5107
timeleft = wait_for_completion_timeout(&ioc->mptbase_cmds.done, 10*HZ);
drivers/message/fusion/mptbase.c
5108
if (!(ioc->mptbase_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptbase.c
5111
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptbase.c
5116
ioc->name, __func__, mpt_GetIocState(ioc, 0));
drivers/message/fusion/mptbase.c
5117
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptbase.c
5118
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptbase.c
5123
if (!(ioc->mptbase_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
drivers/message/fusion/mptbase.c
5129
(SasIoUnitControlReply_t *)ioc->mptbase_cmds.reply;
drivers/message/fusion/mptbase.c
5140
CLEAR_MGMT_STATUS(ioc->mptbase_cmds.status)
drivers/message/fusion/mptbase.c
5141
mutex_unlock(&ioc->mptbase_cmds.mutex);
drivers/message/fusion/mptbase.c
5148
mptbase_raid_process_event_data(MPT_ADAPTER *ioc,
drivers/message/fusion/mptbase.c
5173
ioc->name, disk, volume);
drivers/message/fusion/mptbase.c
5176
ioc->name, volume);
drivers/message/fusion/mptbase.c
5182
ioc->name);
drivers/message/fusion/mptbase.c
5188
ioc->name);
drivers/message/fusion/mptbase.c
5193
ioc->name);
drivers/message/fusion/mptbase.c
5198
ioc->name,
drivers/message/fusion/mptbase.c
5216
ioc->name, disk);
drivers/message/fusion/mptbase.c
5221
ioc->name);
drivers/message/fusion/mptbase.c
5226
ioc->name);
drivers/message/fusion/mptbase.c
5231
ioc->name);
drivers/message/fusion/mptbase.c
5236
ioc->name,
drivers/message/fusion/mptbase.c
525
mr = (MPT_FRAME_HDR *)((u8 *)ioc->reply_frames +
drivers/message/fusion/mptbase.c
526
(reply_dma_low - ioc->reply_frames_low_dma));
drivers/message/fusion/mptbase.c
5262
ioc->name, disk);
drivers/message/fusion/mptbase.c
5267
ioc->name, pRaidEventData->ASC, pRaidEventData->ASCQ);
drivers/message/fusion/mptbase.c
5272
ioc->name, disk);
drivers/message/fusion/mptbase.c
5289
GetIoUnitPage2(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
530
mf = MPT_INDEX_2_MFPTR(ioc, req_idx);
drivers/message/fusion/mptbase.c
5310
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptbase.c
5319
ppage_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptbase.c
532
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Got non-TURBO reply=%p req_idx=%x cb_idx=%x Function=%x\n",
drivers/message/fusion/mptbase.c
5327
if ((rc = mpt_config(ioc, &cfg)) == 0)
drivers/message/fusion/mptbase.c
5328
ioc->biosVersion = le32_to_cpu(ppage_alloc->BiosVersion);
drivers/message/fusion/mptbase.c
533
ioc->name, mr, req_idx, cb_idx, mr->u.hdr.Function));
drivers/message/fusion/mptbase.c
5330
dma_free_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptbase.c
534
DBG_DUMP_REPLY_FRAME(ioc, (u32 *)mr);
drivers/message/fusion/mptbase.c
5359
mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
drivers/message/fusion/mptbase.c
5370
if (!ioc->spi_data.nvram) {
drivers/message/fusion/mptbase.c
5378
ioc->spi_data.nvram = (int *) mem;
drivers/message/fusion/mptbase.c
5380
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SCSI device NVRAM settings @ %p, sz=%d\n",
drivers/message/fusion/mptbase.c
5381
ioc->name, ioc->spi_data.nvram, sz));
drivers/message/fusion/mptbase.c
5387
ioc->spi_data.nvram[ii] = MPT_HOST_NVRAM_INVALID;
drivers/message/fusion/mptbase.c
5402
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5406
pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
541
if (ioc->bus_type == FC)
drivers/message/fusion/mptbase.c
5412
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5413
ioc->spi_data.maxBusWidth = MPT_NARROW;
drivers/message/fusion/mptbase.c
5414
ioc->spi_data.maxSyncOffset = 0;
drivers/message/fusion/mptbase.c
5415
ioc->spi_data.minSyncFactor = MPT_ASYNC;
drivers/message/fusion/mptbase.c
5416
ioc->spi_data.busType = MPT_HOST_BUS_UNKNOWN;
drivers/message/fusion/mptbase.c
5418
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
542
mpt_fc_log_info(ioc, log_info);
drivers/message/fusion/mptbase.c
5420
ioc->name, ioc->spi_data.minSyncFactor));
drivers/message/fusion/mptbase.c
5429
ioc->spi_data.noQas |= MPT_TARGET_NO_NEGO_QAS;
drivers/message/fusion/mptbase.c
543
else if (ioc->bus_type == SPI)
drivers/message/fusion/mptbase.c
5430
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
5432
ioc->name, pPP0->Capabilities));
drivers/message/fusion/mptbase.c
5434
ioc->spi_data.maxBusWidth = pPP0->Capabilities & MPI_SCSIPORTPAGE0_CAP_WIDE ? 1 : 0;
drivers/message/fusion/mptbase.c
5437
ioc->spi_data.maxSyncOffset = (u8) (data >> 16);
drivers/message/fusion/mptbase.c
5439
ioc->spi_data.minSyncFactor = (u8) (data >> 8);
drivers/message/fusion/mptbase.c
544
mpt_spi_log_info(ioc, log_info);
drivers/message/fusion/mptbase.c
5440
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
5442
ioc->name, ioc->spi_data.minSyncFactor));
drivers/message/fusion/mptbase.c
5444
ioc->spi_data.maxSyncOffset = 0;
drivers/message/fusion/mptbase.c
5445
ioc->spi_data.minSyncFactor = MPT_ASYNC;
drivers/message/fusion/mptbase.c
5448
ioc->spi_data.busType = pPP0->PhysicalInterface & MPI_SCSIPORTPAGE0_PHY_SIGNAL_TYPE_MASK;
drivers/message/fusion/mptbase.c
545
else if (ioc->bus_type == SAS)
drivers/message/fusion/mptbase.c
5452
if ((ioc->spi_data.busType == MPI_SCSIPORTPAGE0_PHY_SIGNAL_HVD) ||
drivers/message/fusion/mptbase.c
5453
(ioc->spi_data.busType == MPI_SCSIPORTPAGE0_PHY_SIGNAL_SE)) {
drivers/message/fusion/mptbase.c
5455
if (ioc->spi_data.minSyncFactor < MPT_ULTRA) {
drivers/message/fusion/mptbase.c
5456
ioc->spi_data.minSyncFactor = MPT_ULTRA;
drivers/message/fusion/mptbase.c
5457
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
5459
ioc->name, ioc->spi_data.minSyncFactor));
drivers/message/fusion/mptbase.c
546
mpt_sas_log_info(ioc, log_info, cb_idx);
drivers/message/fusion/mptbase.c
5464
dma_free_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
5482
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5488
pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
5494
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5498
} else if (ioc->pcidev->vendor == PCI_VENDOR_ID_ATTO) {
drivers/message/fusion/mptbase.c
550
mpt_iocstatus_info(ioc, (u32)ioc_stat, mf);
drivers/message/fusion/mptbase.c
5528
ioc->spi_data.nvram[ii] = data;
drivers/message/fusion/mptbase.c
5537
ioc->spi_data.bus_reset =
drivers/message/fusion/mptbase.c
5546
ioc->spi_data.PortFlags = data;
drivers/message/fusion/mptbase.c
5551
ioc->spi_data.nvram[ii] = data;
drivers/message/fusion/mptbase.c
5555
dma_free_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptbase.c
556
__func__, ioc->name, cb_idx);
drivers/message/fusion/mptbase.c
5579
mpt_readScsiDevicePageHeaders(MPT_ADAPTER *ioc, int portnum)
drivers/message/fusion/mptbase.c
5596
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5599
ioc->spi_data.sdp1version = cfg.cfghdr.hdr->PageVersion;
drivers/message/fusion/mptbase.c
5600
ioc->spi_data.sdp1length = cfg.cfghdr.hdr->PageLength;
drivers/message/fusion/mptbase.c
5606
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5609
ioc->spi_data.sdp0version = cfg.cfghdr.hdr->PageVersion;
drivers/message/fusion/mptbase.c
561
freeme = MptCallbacks[cb_idx](ioc, mf, mr);
drivers/message/fusion/mptbase.c
5610
ioc->spi_data.sdp0length = cfg.cfghdr.hdr->PageLength;
drivers/message/fusion/mptbase.c
5612
dcprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Headers: 0: version %d length %d\n",
drivers/message/fusion/mptbase.c
5613
ioc->name, ioc->spi_data.sdp0version, ioc->spi_data.sdp0length));
drivers/message/fusion/mptbase.c
5615
dcprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Headers: 1: version %d length %d\n",
drivers/message/fusion/mptbase.c
5616
ioc->name, ioc->spi_data.sdp1version, ioc->spi_data.sdp1length));
drivers/message/fusion/mptbase.c
5625
mpt_inactive_raid_list_free(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
5629
if (list_empty(&ioc->raid_data.inactive_list))
drivers/message/fusion/mptbase.c
5632
mutex_lock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptbase.c
5634
&ioc->raid_data.inactive_list, list) {
drivers/message/fusion/mptbase.c
5638
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptbase.c
5649
mpt_inactive_raid_volumes(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptbase.c
565
CHIPREG_WRITE32(&ioc->chip->ReplyFifo, pa);
drivers/message/fusion/mptbase.c
5667
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5673
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
568
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptbase.c
5682
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5697
mutex_lock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptbase.c
5699
if(mpt_raid_phys_disk_pg0(ioc,
drivers/message/fusion/mptbase.c
5714
&ioc->raid_data.inactive_list);
drivers/message/fusion/mptbase.c
5716
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptbase.c
5720
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5736
mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num,
drivers/message/fusion/mptbase.c
5755
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5765
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5777
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5789
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5804
mpt_raid_phys_disk_get_num_paths(MPT_ADAPTER *ioc, u8 phys_disk_num)
drivers/message/fusion/mptbase.c
5822
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5832
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5844
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5853
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5872
mpt_raid_phys_disk_pg1(MPT_ADAPTER *ioc, u8 phys_disk_num,
drivers/message/fusion/mptbase.c
5894
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
5904
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5916
if (mpt_config(ioc, &cfg) != 0) {
drivers/message/fusion/mptbase.c
592
MPT_ADAPTER *ioc = bus_id;
drivers/message/fusion/mptbase.c
593
u32 pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo);
drivers/message/fusion/mptbase.c
5942
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
5960
mpt_findImVolumes(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
5971
if (!ioc->ir_firmware)
drivers/message/fusion/mptbase.c
5976
kfree(ioc->raid_data.pIocPg2);
drivers/message/fusion/mptbase.c
5977
ioc->raid_data.pIocPg2 = NULL;
drivers/message/fusion/mptbase.c
5978
mpt_inactive_raid_list_free(ioc);
drivers/message/fusion/mptbase.c
5992
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
5999
pIoc2 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage2sz, &ioc2_dma,
drivers/message/fusion/mptbase.c
6006
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
6015
ioc->raid_data.pIocPg2 = (IOCPage2_t *) mem;
drivers/message/fusion/mptbase.c
6017
mpt_read_ioc_pg_3(ioc);
drivers/message/fusion/mptbase.c
6020
mpt_inactive_raid_volumes(ioc,
drivers/message/fusion/mptbase.c
6025
dma_free_coherent(&ioc->pcidev->dev, iocpage2sz, pIoc2, ioc2_dma);
drivers/message/fusion/mptbase.c
603
mpt_reply(ioc, pa);
drivers/message/fusion/mptbase.c
6031
mpt_read_ioc_pg_3(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6042
kfree(ioc->raid_data.pIocPg3);
drivers/message/fusion/mptbase.c
6043
ioc->raid_data.pIocPg3 = NULL;
drivers/message/fusion/mptbase.c
605
mpt_turbo_reply(ioc, pa);
drivers/message/fusion/mptbase.c
6058
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
606
pa = CHIPREG_READ32_dmasync(&ioc->chip->ReplyFifo);
drivers/message/fusion/mptbase.c
6067
pIoc3 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage3sz, &ioc3_dma,
drivers/message/fusion/mptbase.c
6077
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptbase.c
6081
ioc->raid_data.pIocPg3 = (IOCPage3_t *) mem;
drivers/message/fusion/mptbase.c
6085
dma_free_coherent(&ioc->pcidev->dev, iocpage3sz, pIoc3, ioc3_dma);
drivers/message/fusion/mptbase.c
6091
mpt_read_ioc_pg_4(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6111
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
6117
if ( (pIoc4 = ioc->spi_data.pIocPg4) == NULL ) {
drivers/message/fusion/mptbase.c
6119
pIoc4 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage4sz,
drivers/message/fusion/mptbase.c
6123
ioc->alloc_total += iocpage4sz;
drivers/message/fusion/mptbase.c
6125
ioc4_dma = ioc->spi_data.IocPg4_dma;
drivers/message/fusion/mptbase.c
6126
iocpage4sz = ioc->spi_data.IocPg4Sz;
drivers/message/fusion/mptbase.c
6133
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptbase.c
6134
ioc->spi_data.pIocPg4 = (IOCPage4_t *) pIoc4;
drivers/message/fusion/mptbase.c
6135
ioc->spi_data.IocPg4_dma = ioc4_dma;
drivers/message/fusion/mptbase.c
6136
ioc->spi_data.IocPg4Sz = iocpage4sz;
drivers/message/fusion/mptbase.c
6138
dma_free_coherent(&ioc->pcidev->dev, iocpage4sz, pIoc4,
drivers/message/fusion/mptbase.c
6140
ioc->spi_data.pIocPg4 = NULL;
drivers/message/fusion/mptbase.c
6141
ioc->alloc_total -= iocpage4sz;
drivers/message/fusion/mptbase.c
6146
mpt_read_ioc_pg_1(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6167
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
6176
pIoc1 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage1sz, &ioc1_dma,
drivers/message/fusion/mptbase.c
6185
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptbase.c
6191
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Coalescing Enabled Timeout = %d\n",
drivers/message/fusion/mptbase.c
6192
ioc->name, tmp));
drivers/message/fusion/mptbase.c
6201
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptbase.c
6202
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Reset Current Coalescing Timeout to = %d\n",
drivers/message/fusion/mptbase.c
6203
ioc->name, MPT_COALESCING_TIMEOUT));
drivers/message/fusion/mptbase.c
6206
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptbase.c
6207
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6209
ioc->name, MPT_COALESCING_TIMEOUT));
drivers/message/fusion/mptbase.c
6211
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6213
ioc->name));
drivers/message/fusion/mptbase.c
6217
dprintk(ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptbase.c
6219
ioc->name));
drivers/message/fusion/mptbase.c
6224
dprintk(ioc, printk(MYIOC_s_WARN_FMT "Coalescing Disabled\n", ioc->name));
drivers/message/fusion/mptbase.c
6228
dma_free_coherent(&ioc->pcidev->dev, iocpage1sz, pIoc1, ioc1_dma);
drivers/message/fusion/mptbase.c
6234
mpt_get_manufacturing_pg_0(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6250
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
6257
pbuf = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptbase.c
6264
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptbase.c
6267
memcpy(ioc->board_name, pbuf->BoardName, sizeof(ioc->board_name));
drivers/message/fusion/mptbase.c
6268
memcpy(ioc->board_assembly, pbuf->BoardAssembly, sizeof(ioc->board_assembly));
drivers/message/fusion/mptbase.c
6269
memcpy(ioc->board_tracer, pbuf->BoardTracerNumber, sizeof(ioc->board_tracer));
drivers/message/fusion/mptbase.c
627
mptbase_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply)
drivers/message/fusion/mptbase.c
6274
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4, pbuf,
drivers/message/fusion/mptbase.c
6286
SendEventNotification(MPT_ADAPTER *ioc, u8 EvSwitch, int sleepFlag)
drivers/message/fusion/mptbase.c
6298
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6300
ioc->name, EvSwitch, &evn));
drivers/message/fusion/mptbase.c
6302
return mpt_handshake_req_reply_wait(ioc, sizeof(EventNotification_t),
drivers/message/fusion/mptbase.c
6314
SendEventAck(MPT_ADAPTER *ioc, EventNotificationReply_t *evnp)
drivers/message/fusion/mptbase.c
6318
if ((pAck = (EventAck_t *) mpt_get_msg_frame(mpt_base_index, ioc)) == NULL) {
drivers/message/fusion/mptbase.c
6319
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT "%s, no msg frames!!\n",
drivers/message/fusion/mptbase.c
6320
ioc->name, __func__));
drivers/message/fusion/mptbase.c
6324
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending EventAck\n", ioc->name));
drivers/message/fusion/mptbase.c
6334
mpt_put_msg_frame(mpt_base_index, ioc, (MPT_FRAME_HDR *)pAck);
drivers/message/fusion/mptbase.c
6353
mpt_config(MPT_ADAPTER *ioc, CONFIGPARMS *pCfg)
drivers/message/fusion/mptbase.c
6372
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6373
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptbase.c
6374
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6375
"%s: busy with host reset\n", ioc->name, __func__));
drivers/message/fusion/mptbase.c
6376
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6379
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
638
ProcessEventNotification(ioc, pEventReply, &evHandlers);
drivers/message/fusion/mptbase.c
6382
if (!ioc->active ||
drivers/message/fusion/mptbase.c
6383
mpt_GetIocState(ioc, 1) != MPI_IOC_STATE_OPERATIONAL) {
drivers/message/fusion/mptbase.c
6384
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6386
ioc->name, __func__, ioc->active,
drivers/message/fusion/mptbase.c
6387
mpt_GetIocState(ioc, 0)));
drivers/message/fusion/mptbase.c
6392
mutex_lock(&ioc->mptbase_cmds.mutex);
drivers/message/fusion/mptbase.c
6394
memset(ioc->mptbase_cmds.reply, 0 , MPT_DEFAULT_FRAME_SIZE);
drivers/message/fusion/mptbase.c
6395
INITIALIZE_MGMT_STATUS(ioc->mptbase_cmds.status)
drivers/message/fusion/mptbase.c
6399
if ((mf = mpt_get_msg_frame(mpt_base_index, ioc)) == NULL) {
drivers/message/fusion/mptbase.c
6400
dcprintk(ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptbase.c
6401
"mpt_config: no msg frames!\n", ioc->name));
drivers/message/fusion/mptbase.c
6457
dcprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6459
ioc->name, page_type, pReq->Header.PageNumber, pReq->Action));
drivers/message/fusion/mptbase.c
6461
ioc->add_sge((char *)&pReq->PageBufferSGE, flagsLength, pCfg->physAddr);
drivers/message/fusion/mptbase.c
6463
mpt_put_msg_frame(mpt_base_index, ioc, mf);
drivers/message/fusion/mptbase.c
6464
timeleft = wait_for_completion_timeout(&ioc->mptbase_cmds.done,
drivers/message/fusion/mptbase.c
6466
if (!(ioc->mptbase_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptbase.c
6468
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
647
ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptbase.c
6471
ioc->name, page_type, pReq->Header.PageNumber,
drivers/message/fusion/mptbase.c
6472
pReq->Action, ioc->mptbase_cmds.status, timeleft));
drivers/message/fusion/mptbase.c
6473
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptbase.c
6476
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6477
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptbase.c
6478
spin_unlock_irqrestore(&ioc->taskmgmt_lock,
drivers/message/fusion/mptbase.c
648
ioc->mptbase_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptbase.c
6482
__func__, ioc->name);
drivers/message/fusion/mptbase.c
6483
mutex_unlock(&ioc->mptbase_cmds.mutex);
drivers/message/fusion/mptbase.c
6486
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
649
memcpy(ioc->mptbase_cmds.reply, reply,
drivers/message/fusion/mptbase.c
6492
if (!(ioc->mptbase_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
drivers/message/fusion/mptbase.c
6496
pReply = (ConfigReply_t *)ioc->mptbase_cmds.reply;
drivers/message/fusion/mptbase.c
6515
ioc->name, ret, timeleft);
drivers/message/fusion/mptbase.c
6517
dcprintk(ioc, printk(KERN_DEBUG "IOCStatus=%04xh, IOCLogInfo=%08xh\n",
drivers/message/fusion/mptbase.c
652
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptbase.c
6522
CLEAR_MGMT_STATUS(ioc->mptbase_cmds.status)
drivers/message/fusion/mptbase.c
6523
mutex_unlock(&ioc->mptbase_cmds.mutex);
drivers/message/fusion/mptbase.c
6528
ioc->name, __func__, mpt_GetIocState(ioc, 0));
drivers/message/fusion/mptbase.c
653
ioc->mptbase_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptbase.c
6530
if (mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP) != 0)
drivers/message/fusion/mptbase.c
6533
mpt_HardResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptbase.c
6535
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptbase.c
654
complete(&ioc->mptbase_cmds.done);
drivers/message/fusion/mptbase.c
6541
" action %d\n", ioc->name, page_type,
drivers/message/fusion/mptbase.c
6560
mpt_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptbase.c
6564
ioc->taskmgmt_quiesce_io = 1;
drivers/message/fusion/mptbase.c
6565
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6566
"%s: MPT_IOC_SETUP_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptbase.c
6569
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
657
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_FREE_MF)
drivers/message/fusion/mptbase.c
6570
"%s: MPT_IOC_PRE_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptbase.c
6573
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6574
"%s: MPT_IOC_POST_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptbase.c
6576
if (ioc->mptbase_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptbase.c
6577
ioc->mptbase_cmds.status |=
drivers/message/fusion/mptbase.c
6579
complete(&ioc->mptbase_cmds.done);
drivers/message/fusion/mptbase.c
6582
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptbase.c
6583
ioc->taskmgmt_cmds.status |=
drivers/message/fusion/mptbase.c
6585
complete(&ioc->taskmgmt_cmds.done);
drivers/message/fusion/mptbase.c
661
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
662
"EventAck reply received\n", ioc->name));
drivers/message/fusion/mptbase.c
6639
static void seq_mpt_print_ioc_summary(MPT_ADAPTER *ioc, struct seq_file *m, int showlan);
drivers/message/fusion/mptbase.c
6643
MPT_ADAPTER *ioc = m->private;
drivers/message/fusion/mptbase.c
6645
if (ioc) {
drivers/message/fusion/mptbase.c
6646
seq_mpt_print_ioc_summary(ioc, m, 1);
drivers/message/fusion/mptbase.c
6648
list_for_each_entry(ioc, &ioc_list, list) {
drivers/message/fusion/mptbase.c
6649
seq_mpt_print_ioc_summary(ioc, m, 1);
drivers/message/fusion/mptbase.c
667
ioc->name, reply->u.hdr.Function);
drivers/message/fusion/mptbase.c
6700
MPT_ADAPTER *ioc = m->private;
drivers/message/fusion/mptbase.c
6705
mpt_get_fw_exp_ver(expVer, ioc);
drivers/message/fusion/mptbase.c
6707
seq_printf(m, "%s:", ioc->name);
drivers/message/fusion/mptbase.c
6708
if (ioc->facts.Flags & MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT)
drivers/message/fusion/mptbase.c
6714
ioc->facts.ProductID,
drivers/message/fusion/mptbase.c
6715
ioc->prod_name);
drivers/message/fusion/mptbase.c
6716
seq_printf(m, " FWVersion = 0x%08x%s", ioc->facts.FWVersion.Word, expVer);
drivers/message/fusion/mptbase.c
6717
if (ioc->facts.FWImageSize)
drivers/message/fusion/mptbase.c
6718
seq_printf(m, " (fw_size=%d)", ioc->facts.FWImageSize);
drivers/message/fusion/mptbase.c
6719
seq_printf(m, "\n MsgVersion = 0x%04x\n", ioc->facts.MsgVersion);
drivers/message/fusion/mptbase.c
6720
seq_printf(m, " FirstWhoInit = 0x%02x\n", ioc->FirstWhoInit);
drivers/message/fusion/mptbase.c
6721
seq_printf(m, " EventState = 0x%02x\n", ioc->facts.EventState);
drivers/message/fusion/mptbase.c
6724
ioc->facts.CurrentHostMfaHighAddr);
drivers/message/fusion/mptbase.c
6726
ioc->facts.CurrentSenseBufferHighAddr);
drivers/message/fusion/mptbase.c
6728
seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
drivers/message/fusion/mptbase.c
6729
seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
drivers/message/fusion/mptbase.c
6732
(void *)ioc->req_frames, (void *)(ulong)ioc->req_frames_dma);
drivers/message/fusion/mptbase.c
6736
sz = (ioc->req_sz * ioc->req_depth) + 128;
drivers/message/fusion/mptbase.c
6739
ioc->req_sz, ioc->req_depth, ioc->req_sz*ioc->req_depth, sz);
drivers/message/fusion/mptbase.c
6741
4*ioc->facts.RequestFrameSize,
drivers/message/fusion/mptbase.c
6742
ioc->facts.GlobalCredits);
drivers/message/fusion/mptbase.c
6745
(void *)ioc->alloc, (void *)(ulong)ioc->alloc_dma);
drivers/message/fusion/mptbase.c
6746
sz = (ioc->reply_sz * ioc->reply_depth) + 128;
drivers/message/fusion/mptbase.c
6748
ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz);
drivers/message/fusion/mptbase.c
6750
ioc->facts.CurReplyFrameSize,
drivers/message/fusion/mptbase.c
6751
ioc->facts.ReplyQueueDepth);
drivers/message/fusion/mptbase.c
6754
(ioc->facts.MaxDevices==0) ? 255 : ioc->facts.MaxDevices);
drivers/message/fusion/mptbase.c
6755
seq_printf(m, " MaxBuses = %d\n", ioc->facts.MaxBuses);
drivers/message/fusion/mptbase.c
6758
for (p=0; p < ioc->facts.NumberOfPorts; p++) {
drivers/message/fusion/mptbase.c
6761
ioc->facts.NumberOfPorts);
drivers/message/fusion/mptbase.c
6762
if (ioc->bus_type == FC) {
drivers/message/fusion/mptbase.c
6763
if (ioc->pfacts[p].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN) {
drivers/message/fusion/mptbase.c
6764
u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow;
drivers/message/fusion/mptbase.c
6768
ioc->fc_port_page0[p].WWNN.High,
drivers/message/fusion/mptbase.c
6769
ioc->fc_port_page0[p].WWNN.Low,
drivers/message/fusion/mptbase.c
6770
ioc->fc_port_page0[p].WWPN.High,
drivers/message/fusion/mptbase.c
6771
ioc->fc_port_page0[p].WWPN.Low);
drivers/message/fusion/mptbase.c
6781
mpt_get_fw_exp_ver(char *buf, MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6784
if ((ioc->facts.FWVersion.Word >> 24) == 0x0E) {
drivers/message/fusion/mptbase.c
6786
(ioc->facts.FWVersion.Word >> 16) & 0x00FF, /* Month */
drivers/message/fusion/mptbase.c
6787
(ioc->facts.FWVersion.Word >> 8) & 0x1F); /* Day */
drivers/message/fusion/mptbase.c
6790
if ((ioc->facts.FWVersion.Word >> 8) & 0x80)
drivers/message/fusion/mptbase.c
6808
mpt_print_ioc_summary(MPT_ADAPTER *ioc, char *buffer, int *size, int len, int showlan)
drivers/message/fusion/mptbase.c
6813
mpt_get_fw_exp_ver(expVer, ioc);
drivers/message/fusion/mptbase.c
6819
ioc->name,
drivers/message/fusion/mptbase.c
6820
ioc->prod_name,
drivers/message/fusion/mptbase.c
6822
ioc->facts.FWVersion.Word,
drivers/message/fusion/mptbase.c
6824
ioc->facts.NumberOfPorts,
drivers/message/fusion/mptbase.c
6825
ioc->req_depth);
drivers/message/fusion/mptbase.c
6827
if (showlan && (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN)) {
drivers/message/fusion/mptbase.c
6828
u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow;
drivers/message/fusion/mptbase.c
6832
y += sprintf(buffer+len+y, ", IRQ=%d", ioc->pci_irq);
drivers/message/fusion/mptbase.c
6834
if (!ioc->active)
drivers/message/fusion/mptbase.c
6843
static void seq_mpt_print_ioc_summary(MPT_ADAPTER *ioc, struct seq_file *m, int showlan)
drivers/message/fusion/mptbase.c
6847
mpt_get_fw_exp_ver(expVer, ioc);
drivers/message/fusion/mptbase.c
6853
ioc->name,
drivers/message/fusion/mptbase.c
6854
ioc->prod_name,
drivers/message/fusion/mptbase.c
6856
ioc->facts.FWVersion.Word,
drivers/message/fusion/mptbase.c
6858
ioc->facts.NumberOfPorts,
drivers/message/fusion/mptbase.c
6859
ioc->req_depth);
drivers/message/fusion/mptbase.c
6861
if (showlan && (ioc->pfacts[0].ProtocolFlags & MPI_PORTFACTS_PROTOCOL_LAN)) {
drivers/message/fusion/mptbase.c
6862
u8 *a = (u8*)&ioc->lan_cnfg_page1.HardwareAddressLow;
drivers/message/fusion/mptbase.c
6866
seq_printf(m, ", IRQ=%d", ioc->pci_irq);
drivers/message/fusion/mptbase.c
6868
if (!ioc->active)
drivers/message/fusion/mptbase.c
6884
mpt_set_taskmgmt_in_progress_flag(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6889
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6890
if (ioc->ioc_reset_in_progress || ioc->taskmgmt_in_progress ||
drivers/message/fusion/mptbase.c
6891
(ioc->alt_ioc && ioc->alt_ioc->taskmgmt_in_progress)) {
drivers/message/fusion/mptbase.c
6896
ioc->taskmgmt_in_progress = 1;
drivers/message/fusion/mptbase.c
6897
ioc->taskmgmt_quiesce_io = 1;
drivers/message/fusion/mptbase.c
6898
if (ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
6899
ioc->alt_ioc->taskmgmt_in_progress = 1;
drivers/message/fusion/mptbase.c
6900
ioc->alt_ioc->taskmgmt_quiesce_io = 1;
drivers/message/fusion/mptbase.c
6903
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6914
mpt_clear_taskmgmt_in_progress_flag(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6918
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6919
ioc->taskmgmt_in_progress = 0;
drivers/message/fusion/mptbase.c
6920
ioc->taskmgmt_quiesce_io = 0;
drivers/message/fusion/mptbase.c
6921
if (ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
6922
ioc->alt_ioc->taskmgmt_in_progress = 0;
drivers/message/fusion/mptbase.c
6923
ioc->alt_ioc->taskmgmt_quiesce_io = 0;
drivers/message/fusion/mptbase.c
6925
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
6937
mpt_halt_firmware(MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
6941
ioc_raw_state = mpt_GetIocState(ioc, 0);
drivers/message/fusion/mptbase.c
6945
ioc->name, ioc_raw_state & MPI_DOORBELL_DATA_MASK);
drivers/message/fusion/mptbase.c
6946
panic("%s: IOC Fault (%04xh)!!!\n", ioc->name,
drivers/message/fusion/mptbase.c
6949
CHIPREG_WRITE32(&ioc->chip->Doorbell, 0xC0FFEE00);
drivers/message/fusion/mptbase.c
6951
ioc->name);
drivers/message/fusion/mptbase.c
6970
mpt_SoftResetHandler(MPT_ADAPTER *ioc, int sleepFlag)
drivers/message/fusion/mptbase.c
6979
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SoftResetHandler Entered!\n",
drivers/message/fusion/mptbase.c
6980
ioc->name));
drivers/message/fusion/mptbase.c
6982
ioc_state = mpt_GetIocState(ioc, 0) & MPI_IOC_STATE_MASK;
drivers/message/fusion/mptbase.c
6985
mpt_halt_firmware(ioc);
drivers/message/fusion/mptbase.c
6989
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6990
"skipping, either in FAULT or RESET state!\n", ioc->name));
drivers/message/fusion/mptbase.c
6994
if (ioc->bus_type == FC) {
drivers/message/fusion/mptbase.c
6995
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
6996
"skipping, because the bus type is FC!\n", ioc->name));
drivers/message/fusion/mptbase.c
7000
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7001
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptbase.c
7002
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7005
ioc->ioc_reset_in_progress = 1;
drivers/message/fusion/mptbase.c
7006
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7010
mpt_signal_reset(cb_idx, ioc, MPT_IOC_SETUP_RESET);
drivers/message/fusion/mptbase.c
7013
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7014
if (ioc->taskmgmt_in_progress) {
drivers/message/fusion/mptbase.c
7015
ioc->ioc_reset_in_progress = 0;
drivers/message/fusion/mptbase.c
7016
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7019
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7021
CHIPREG_WRITE32(&ioc->chip->IntMask, 0xFFFFFFFF);
drivers/message/fusion/mptbase.c
7022
ioc->active = 0;
drivers/message/fusion/mptbase.c
7025
rc = SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, sleepFlag);
drivers/message/fusion/mptbase.c
7029
mpt_signal_reset(cb_idx, ioc, MPT_IOC_PRE_RESET);
drivers/message/fusion/mptbase.c
7035
ioc_state = mpt_GetIocState(ioc, 0) & MPI_IOC_STATE_MASK;
drivers/message/fusion/mptbase.c
7041
rc = GetIocFacts(ioc, sleepFlag,
drivers/message/fusion/mptbase.c
7053
rc = PrimeIocFifos(ioc);
drivers/message/fusion/mptbase.c
7057
rc = SendIocInit(ioc, sleepFlag);
drivers/message/fusion/mptbase.c
7061
rc = SendEventNotification(ioc, 1, sleepFlag);
drivers/message/fusion/mptbase.c
7065
if (ioc->hard_resets < -1)
drivers/message/fusion/mptbase.c
7066
ioc->hard_resets++;
drivers/message/fusion/mptbase.c
7072
ioc->active = 1;
drivers/message/fusion/mptbase.c
7073
CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM);
drivers/message/fusion/mptbase.c
7076
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7077
ioc->ioc_reset_in_progress = 0;
drivers/message/fusion/mptbase.c
7078
ioc->taskmgmt_quiesce_io = 0;
drivers/message/fusion/mptbase.c
7079
ioc->taskmgmt_in_progress = 0;
drivers/message/fusion/mptbase.c
7080
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7082
if (ioc->active) { /* otherwise, hard reset coming */
drivers/message/fusion/mptbase.c
7085
mpt_signal_reset(cb_idx, ioc,
drivers/message/fusion/mptbase.c
7090
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
7092
ioc->name, jiffies_to_msecs(jiffies - time_count)/1000,
drivers/message/fusion/mptbase.c
7108
mpt_Soft_Hard_ResetHandler(MPT_ADAPTER *ioc, int sleepFlag) {
drivers/message/fusion/mptbase.c
7111
ret = mpt_SoftResetHandler(ioc, sleepFlag);
drivers/message/fusion/mptbase.c
7114
ret = mpt_HardResetHandler(ioc, sleepFlag);
drivers/message/fusion/mptbase.c
7141
mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag)
drivers/message/fusion/mptbase.c
7148
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "HardResetHandler Entered!\n", ioc->name));
drivers/message/fusion/mptbase.c
7150
printk(MYIOC_s_INFO_FMT "HardResetHandler Entered!\n", ioc->name);
drivers/message/fusion/mptbase.c
7151
printk("MF count 0x%x !\n", ioc->mfcnt);
drivers/message/fusion/mptbase.c
7154
mpt_halt_firmware(ioc);
drivers/message/fusion/mptbase.c
7159
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7160
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptbase.c
7161
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7162
ioc->wait_on_reset_completion = 1;
drivers/message/fusion/mptbase.c
7165
} while (ioc->ioc_reset_in_progress == 1);
drivers/message/fusion/mptbase.c
7166
ioc->wait_on_reset_completion = 0;
drivers/message/fusion/mptbase.c
7167
return ioc->reset_status;
drivers/message/fusion/mptbase.c
7169
if (ioc->wait_on_reset_completion) {
drivers/message/fusion/mptbase.c
7170
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7175
ioc->ioc_reset_in_progress = 1;
drivers/message/fusion/mptbase.c
7176
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
7177
ioc->alt_ioc->ioc_reset_in_progress = 1;
drivers/message/fusion/mptbase.c
7178
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7188
mpt_signal_reset(cb_idx, ioc, MPT_IOC_SETUP_RESET);
drivers/message/fusion/mptbase.c
7189
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
7190
mpt_signal_reset(cb_idx, ioc->alt_ioc,
drivers/message/fusion/mptbase.c
7196
rc = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_RECOVER, sleepFlag);
drivers/message/fusion/mptbase.c
7200
rc, ioc->name, mpt_GetIocState(ioc, 0));
drivers/message/fusion/mptbase.c
7202
if (ioc->hard_resets < -1)
drivers/message/fusion/mptbase.c
7203
ioc->hard_resets++;
drivers/message/fusion/mptbase.c
7206
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7207
ioc->ioc_reset_in_progress = 0;
drivers/message/fusion/mptbase.c
7208
ioc->taskmgmt_quiesce_io = 0;
drivers/message/fusion/mptbase.c
7209
ioc->taskmgmt_in_progress = 0;
drivers/message/fusion/mptbase.c
7210
ioc->reset_status = rc;
drivers/message/fusion/mptbase.c
7211
if (ioc->alt_ioc) {
drivers/message/fusion/mptbase.c
7212
ioc->alt_ioc->ioc_reset_in_progress = 0;
drivers/message/fusion/mptbase.c
7213
ioc->alt_ioc->taskmgmt_quiesce_io = 0;
drivers/message/fusion/mptbase.c
7214
ioc->alt_ioc->taskmgmt_in_progress = 0;
drivers/message/fusion/mptbase.c
7216
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptbase.c
7220
mpt_signal_reset(cb_idx, ioc, MPT_IOC_POST_RESET);
drivers/message/fusion/mptbase.c
7221
if (ioc->alt_ioc)
drivers/message/fusion/mptbase.c
7223
ioc->alt_ioc, MPT_IOC_POST_RESET);
drivers/message/fusion/mptbase.c
7227
dtmprintk(ioc,
drivers/message/fusion/mptbase.c
7229
"HardResetHandler: completed (%d seconds): %s\n", ioc->name,
drivers/message/fusion/mptbase.c
7238
mpt_display_event_info(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply)
drivers/message/fusion/mptbase.c
7244
char *evStr = ioc->evStr;
drivers/message/fusion/mptbase.c
7670
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
7672
ioc->name, event, evStr));
drivers/message/fusion/mptbase.c
7674
devtverboseprintk(ioc, printk(KERN_DEBUG MYNAM
drivers/message/fusion/mptbase.c
7677
devtverboseprintk(ioc, printk(" %08x",
drivers/message/fusion/mptbase.c
7679
devtverboseprintk(ioc, printk(KERN_DEBUG "\n"));
drivers/message/fusion/mptbase.c
7694
ProcessEventNotification(MPT_ADAPTER *ioc, EventNotificationReply_t *pEventReply, int *evHandlers)
drivers/message/fusion/mptbase.c
7715
mpt_display_event_info(ioc, pEventReply);
drivers/message/fusion/mptbase.c
7729
if (ioc->facts.Function) {
drivers/message/fusion/mptbase.c
7730
ioc->facts.EventState = evState;
drivers/message/fusion/mptbase.c
7735
mptbase_raid_process_event_data(ioc,
drivers/message/fusion/mptbase.c
7746
if (ioc->events && (ioc->eventTypes & ( 1 << event))) {
drivers/message/fusion/mptbase.c
7749
idx = ioc->eventContext % MPTCTL_EVENT_LOG_SIZE;
drivers/message/fusion/mptbase.c
7751
ioc->events[idx].event = event;
drivers/message/fusion/mptbase.c
7752
ioc->events[idx].eventContext = ioc->eventContext;
drivers/message/fusion/mptbase.c
7756
ioc->events[idx].data[ii] = le32_to_cpu(pEventReply->Data[ii]);
drivers/message/fusion/mptbase.c
7758
ioc->events[idx].data[ii] = 0;
drivers/message/fusion/mptbase.c
7761
ioc->eventContext++;
drivers/message/fusion/mptbase.c
7770
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
7772
ioc->name, cb_idx));
drivers/message/fusion/mptbase.c
7773
r += (*(MptEvHandlers[cb_idx]))(ioc, pEventReply);
drivers/message/fusion/mptbase.c
7783
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptbase.c
7784
"EventAck required\n",ioc->name));
drivers/message/fusion/mptbase.c
7785
if ((ii = SendEventAck(ioc, pEventReply)) != 0) {
drivers/message/fusion/mptbase.c
7786
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SendEventAck returned %d\n",
drivers/message/fusion/mptbase.c
7787
ioc->name, ii));
drivers/message/fusion/mptbase.c
7804
mpt_fc_log_info(MPT_ADAPTER *ioc, u32 log_info)
drivers/message/fusion/mptbase.c
7836
ioc->name, log_info, desc, (log_info & 0xFFFFFF));
drivers/message/fusion/mptbase.c
7848
mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info)
drivers/message/fusion/mptbase.c
7904
printk(MYIOC_s_INFO_FMT "LogInfo(0x%08x): F/W: %s\n", ioc->name, log_info, desc);
drivers/message/fusion/mptbase.c
8060
mpt_sas_log_info(MPT_ADAPTER *ioc, u32 log_info, u8 cb_idx)
drivers/message/fusion/mptbase.c
8115
ioc->name, log_info, originator_desc, code_desc,
drivers/message/fusion/mptbase.c
8121
ioc->name, log_info, originator_desc, code_desc,
drivers/message/fusion/mptbase.c
8127
ioc->name, log_info, originator_desc,
drivers/message/fusion/mptbase.c
8142
mpt_iocstatus_info_config(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf)
drivers/message/fusion/mptbase.c
8207
dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT "IOCStatus(0x%04X): %s: %s\n",
drivers/message/fusion/mptbase.c
8208
ioc->name, ioc_status, desc, extend_desc));
drivers/message/fusion/mptbase.c
8220
mpt_iocstatus_info(MPT_ADAPTER *ioc, u32 ioc_status, MPT_FRAME_HDR *mf)
drivers/message/fusion/mptbase.c
8273
mpt_iocstatus_info_config(ioc, status, mf);
drivers/message/fusion/mptbase.c
831
MPT_ADAPTER *ioc;
drivers/message/fusion/mptbase.c
839
list_for_each_entry(ioc, &ioc_list, list) {
drivers/message/fusion/mptbase.c
841
dd_cbfunc->probe(ioc->pcidev);
drivers/message/fusion/mptbase.c
8434
dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT "IOCStatus(0x%04X): %s\n",
drivers/message/fusion/mptbase.c
8435
ioc->name, status, desc));
drivers/message/fusion/mptbase.c
856
MPT_ADAPTER *ioc;
drivers/message/fusion/mptbase.c
863
list_for_each_entry(ioc, &ioc_list, list) {
drivers/message/fusion/mptbase.c
865
dd_cbfunc->remove(ioc->pcidev);
drivers/message/fusion/mptbase.c
885
mpt_get_msg_frame(u8 cb_idx, MPT_ADAPTER *ioc)
drivers/message/fusion/mptbase.c
894
if (!ioc->active)
drivers/message/fusion/mptbase.c
896
"returning NULL!\n", ioc->name);
drivers/message/fusion/mptbase.c
900
if (!ioc->active)
drivers/message/fusion/mptbase.c
903
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptbase.c
904
if (!list_empty(&ioc->FreeQ)) {
drivers/message/fusion/mptbase.c
907
mf = list_entry(ioc->FreeQ.next, MPT_FRAME_HDR,
drivers/message/fusion/mptbase.c
912
req_offset = (u8 *)mf - (u8 *)ioc->req_frames;
drivers/message/fusion/mptbase.c
914
req_idx = req_offset / ioc->req_sz;
drivers/message/fusion/mptbase.c
918
ioc->RequestNB[req_idx] = ioc->NB_for_64_byte_frame;
drivers/message/fusion/mptbase.c
920
ioc->mfcnt++;
drivers/message/fusion/mptbase.c
925
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptbase.c
930
"Count 0x%x Max 0x%x\n", ioc->name, ioc->mfcnt,
drivers/message/fusion/mptbase.c
931
ioc->req_depth);
drivers/message/fusion/mptbase.c
934
printk(MYIOC_s_INFO_FMT "MF Count 0x%x Max 0x%x \n", ioc->name,
drivers/message/fusion/mptbase.c
935
ioc->mfcnt, ioc->req_depth);
drivers/message/fusion/mptbase.c
938
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mpt_get_msg_frame(%d,%d), got mf=%p\n",
drivers/message/fusion/mptbase.c
939
ioc->name, cb_idx, ioc->id, mf));
drivers/message/fusion/mptbase.c
954
mpt_put_msg_frame(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
drivers/message/fusion/mptbase.c
962
req_offset = (u8 *)mf - (u8 *)ioc->req_frames;
drivers/message/fusion/mptbase.c
964
req_idx = req_offset / ioc->req_sz;
drivers/message/fusion/mptbase.c
968
DBG_DUMP_PUT_MSG_FRAME(ioc, (u32 *)mf);
drivers/message/fusion/mptbase.c
970
mf_dma_addr = (ioc->req_frames_low_dma + req_offset) | ioc->RequestNB[req_idx];
drivers/message/fusion/mptbase.c
971
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mf_dma_addr=%x req_idx=%d "
drivers/message/fusion/mptbase.c
972
"RequestNB=%x\n", ioc->name, mf_dma_addr, req_idx,
drivers/message/fusion/mptbase.c
973
ioc->RequestNB[req_idx]));
drivers/message/fusion/mptbase.c
974
CHIPREG_WRITE32(&ioc->chip->RequestFifo, mf_dma_addr);
drivers/message/fusion/mptbase.c
990
mpt_put_msg_frame_hi_pri(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
drivers/message/fusion/mptbase.c
998
req_offset = (u8 *)mf - (u8 *)ioc->req_frames;
drivers/message/fusion/mptbase.c
999
req_idx = req_offset / ioc->req_sz;
drivers/message/fusion/mptbase.h
586
struct _MPT_ADAPTER *ioc;
drivers/message/fusion/mptbase.h
597
typedef void (*MPT_SCHEDULE_TARGET_RESET)(void *ioc);
drivers/message/fusion/mptbase.h
793
typedef int (*MPT_CALLBACK)(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply);
drivers/message/fusion/mptbase.h
794
typedef int (*MPT_EVHANDLER)(MPT_ADAPTER *ioc, EventNotificationReply_t *evReply);
drivers/message/fusion/mptbase.h
795
typedef int (*MPT_RESETHANDLER)(MPT_ADAPTER *ioc, int reset_phase);
drivers/message/fusion/mptbase.h
823
#define mpt_msg_flags(ioc) \
drivers/message/fusion/mptbase.h
824
(ioc->sg_addr_size == sizeof(u64)) ? \
drivers/message/fusion/mptbase.h
837
#define MPT_INDEX_2_MFPTR(ioc,idx) \
drivers/message/fusion/mptbase.h
838
(MPT_FRAME_HDR*)( (u8*)(ioc)->req_frames + (ioc)->req_sz * (idx) )
drivers/message/fusion/mptbase.h
840
#define MFPTR_2_MPT_INDEX(ioc,mf) \
drivers/message/fusion/mptbase.h
841
(int)( ((u8*)mf - (u8*)(ioc)->req_frames) / (ioc)->req_sz )
drivers/message/fusion/mptbase.h
843
#define MPT_INDEX_2_RFPTR(ioc,idx) \
drivers/message/fusion/mptbase.h
844
(MPT_FRAME_HDR*)( (u8*)(ioc)->reply_frames + (ioc)->req_sz * (idx) )
drivers/message/fusion/mptbase.h
921
extern MPT_FRAME_HDR *mpt_get_msg_frame(u8 cb_idx, MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.h
922
extern void mpt_free_msg_frame(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf);
drivers/message/fusion/mptbase.h
923
extern void mpt_put_msg_frame(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf);
drivers/message/fusion/mptbase.h
924
extern void mpt_put_msg_frame_hi_pri(u8 cb_idx, MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf);
drivers/message/fusion/mptbase.h
926
extern int mpt_send_handshake_request(u8 cb_idx, MPT_ADAPTER *ioc, int reqBytes, u32 *req, int sleepFlag);
drivers/message/fusion/mptbase.h
928
extern u32 mpt_GetIocState(MPT_ADAPTER *ioc, int cooked);
drivers/message/fusion/mptbase.h
929
extern void mpt_print_ioc_summary(MPT_ADAPTER *ioc, char *buf, int *size, int len, int showlan);
drivers/message/fusion/mptbase.h
930
extern int mpt_HardResetHandler(MPT_ADAPTER *ioc, int sleepFlag);
drivers/message/fusion/mptbase.h
931
extern int mpt_Soft_Hard_ResetHandler(MPT_ADAPTER *ioc, int sleepFlag);
drivers/message/fusion/mptbase.h
932
extern int mpt_config(MPT_ADAPTER *ioc, CONFIGPARMS *cfg);
drivers/message/fusion/mptbase.h
933
extern int mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size);
drivers/message/fusion/mptbase.h
934
extern void mpt_free_fw_memory(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.h
935
extern int mpt_findImVolumes(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.h
936
extern int mptbase_sas_persist_operation(MPT_ADAPTER *ioc, u8 persist_opcode);
drivers/message/fusion/mptbase.h
937
extern int mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num, pRaidPhysDiskPage0_t phys_disk);
drivers/message/fusion/mptbase.h
938
extern int mpt_raid_phys_disk_pg1(MPT_ADAPTER *ioc, u8 phys_disk_num,
drivers/message/fusion/mptbase.h
940
extern int mpt_raid_phys_disk_get_num_paths(MPT_ADAPTER *ioc,
drivers/message/fusion/mptbase.h
942
extern int mpt_set_taskmgmt_in_progress_flag(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.h
943
extern void mpt_clear_taskmgmt_in_progress_flag(MPT_ADAPTER *ioc);
drivers/message/fusion/mptbase.h
944
extern void __noreturn mpt_halt_firmware(MPT_ADAPTER *ioc);
drivers/message/fusion/mptctl.c
1005
struct buflist **blp, dma_addr_t *sglbuf_dma, MPT_ADAPTER *ioc)
drivers/message/fusion/mptctl.c
1042
sglbuf = dma_alloc_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES,
drivers/message/fusion/mptctl.c
1060
sg_spill = ((ioc->req_sz - sge_offset)/ioc->SGE_size) - 1;
drivers/message/fusion/mptctl.c
1064
buflist[buflist_ent].kptr = dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptctl.c
1071
"not enough memory! :-(\n", ioc->name);
drivers/message/fusion/mptctl.c
1073
ioc->name, numfrags);
drivers/message/fusion/mptctl.c
1082
dma_addr = dma_map_single(&ioc->pcidev->dev,
drivers/message/fusion/mptctl.c
1099
"-SG: No can do - " "Chain required! :-(\n", ioc->name);
drivers/message/fusion/mptctl.c
1100
printk(MYIOC_s_WARN_FMT "(freeing %d frags)\n", ioc->name, numfrags);
drivers/message/fusion/mptctl.c
1108
"too many SG frags! :-(\n", ioc->name);
drivers/message/fusion/mptctl.c
1110
ioc->name, numfrags);
drivers/message/fusion/mptctl.c
1121
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: kbuf_alloc_2_sgl() - "
drivers/message/fusion/mptctl.c
1122
"%d SG frags generated!\n", ioc->name, numfrags));
drivers/message/fusion/mptctl.c
1124
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: kbuf_alloc_2_sgl() - "
drivers/message/fusion/mptctl.c
1125
"last (big) alloc_sz=%d\n", ioc->name, alloc_sz));
drivers/message/fusion/mptctl.c
1143
dma_free_coherent(&ioc->pcidev->dev, len, kptr,
drivers/message/fusion/mptctl.c
1146
dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sglbuf,
drivers/message/fusion/mptctl.c
1158
kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTER *ioc)
drivers/message/fusion/mptctl.c
1184
dma_unmap_single(&ioc->pcidev->dev, dma_addr, len,
drivers/message/fusion/mptctl.c
1186
dma_free_coherent(&ioc->pcidev->dev, len, kptr,
drivers/message/fusion/mptctl.c
1204
dma_unmap_single(&ioc->pcidev->dev, dma_addr, len, dir);
drivers/message/fusion/mptctl.c
1205
dma_free_coherent(&ioc->pcidev->dev, len, kptr, dma_addr);
drivers/message/fusion/mptctl.c
1209
dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sgl, sgl_dma);
drivers/message/fusion/mptctl.c
1211
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: Free'd 1 SGL buf + %d kbufs!\n",
drivers/message/fusion/mptctl.c
1212
ioc->name, n));
drivers/message/fusion/mptctl.c
1226
mptctl_getiocinfo (MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
drivers/message/fusion/mptctl.c
1262
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
1267
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_getiocinfo called.\n",
drivers/message/fusion/mptctl.c
1268
ioc->name));
drivers/message/fusion/mptctl.c
1273
if (ioc->bus_type == SAS)
drivers/message/fusion/mptctl.c
1275
else if (ioc->bus_type == FC)
drivers/message/fusion/mptctl.c
1287
pdev = (struct pci_dev *) ioc->pcidev;
drivers/message/fusion/mptctl.c
129
struct buflist **blp, dma_addr_t *sglbuf_dma, MPT_ADAPTER *ioc);
drivers/message/fusion/mptctl.c
131
struct buflist *buflist, MPT_ADAPTER *ioc);
drivers/message/fusion/mptctl.c
1312
if (ioc->sh) {
drivers/message/fusion/mptctl.c
1313
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptctl.c
1326
karg->FWVersion = ioc->facts.FWVersion.Word;
drivers/message/fusion/mptctl.c
1327
karg->BIOSVersion = ioc->biosVersion;
drivers/message/fusion/mptctl.c
1335
karg->hostId = ioc->pfacts[port].PortSCSIID;
drivers/message/fusion/mptctl.c
1343
ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
136
static int mptctl_ioc_reset(MPT_ADAPTER *ioc, int reset_phase);
drivers/message/fusion/mptctl.c
1363
mptctl_gettargetinfo (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1383
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_gettargetinfo called.\n",
drivers/message/fusion/mptctl.c
1384
ioc->name));
drivers/message/fusion/mptctl.c
1390
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
141
static int mptctl_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
drivers/message/fusion/mptctl.c
1411
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
1418
if (ioc->sh){
drivers/message/fusion/mptctl.c
1419
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptctl.c
1444
ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
1454
ioc->name, __FILE__, __LINE__, pdata);
drivers/message/fusion/mptctl.c
1473
mptctl_readtest (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1485
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_readtest called.\n",
drivers/message/fusion/mptctl.c
1486
ioc->name));
drivers/message/fusion/mptctl.c
1492
karg.chip_type = ioc->mfcnt;
drivers/message/fusion/mptctl.c
1494
karg.chip_type = ioc->pcidev->device;
drivers/message/fusion/mptctl.c
1496
strscpy_pad(karg.name, ioc->name, sizeof(karg.name));
drivers/message/fusion/mptctl.c
1497
strscpy_pad(karg.product, ioc->prod_name, sizeof(karg.product));
drivers/message/fusion/mptctl.c
1504
ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
1523
mptctl_eventquery (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1535
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventquery called.\n",
drivers/message/fusion/mptctl.c
1536
ioc->name));
drivers/message/fusion/mptctl.c
1538
karg.eventTypes = ioc->eventTypes;
drivers/message/fusion/mptctl.c
1545
ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
1553
mptctl_eventenable (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1565
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventenable called.\n",
drivers/message/fusion/mptctl.c
1566
ioc->name));
drivers/message/fusion/mptctl.c
1567
if (ioc->events == NULL) {
drivers/message/fusion/mptctl.c
1571
ioc->events = kzalloc(sz, GFP_KERNEL);
drivers/message/fusion/mptctl.c
1572
if (!ioc->events) {
drivers/message/fusion/mptctl.c
1575
ioc->name);
drivers/message/fusion/mptctl.c
1578
ioc->alloc_total += sz;
drivers/message/fusion/mptctl.c
1580
ioc->eventContext = 0;
drivers/message/fusion/mptctl.c
1585
ioc->eventTypes = karg.eventTypes;
drivers/message/fusion/mptctl.c
1592
mptctl_eventreport (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1605
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_eventreport called.\n",
drivers/message/fusion/mptctl.c
1606
ioc->name));
drivers/message/fusion/mptctl.c
1617
if ((max < 1) || !ioc->events)
drivers/message/fusion/mptctl.c
1621
ioc->aen_event_read_flag=0;
drivers/message/fusion/mptctl.c
1626
if (copy_to_user(uarg->eventData, ioc->events, numBytes)) {
drivers/message/fusion/mptctl.c
1629
ioc->name, __FILE__, __LINE__, ioc->events);
drivers/message/fusion/mptctl.c
1638
mptctl_replace_fw (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1651
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_replace_fw called.\n",
drivers/message/fusion/mptctl.c
1652
ioc->name));
drivers/message/fusion/mptctl.c
1655
if (ioc->cached_fw == NULL)
drivers/message/fusion/mptctl.c
1658
mpt_free_fw_memory(ioc);
drivers/message/fusion/mptctl.c
1664
mpt_alloc_fw_memory(ioc, newFwSize);
drivers/message/fusion/mptctl.c
1665
if (ioc->cached_fw == NULL)
drivers/message/fusion/mptctl.c
1670
if (copy_from_user(ioc->cached_fw, uarg->newImage, newFwSize)) {
drivers/message/fusion/mptctl.c
1673
"@ %p\n", ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
1674
mpt_free_fw_memory(ioc);
drivers/message/fusion/mptctl.c
1680
ioc->facts.FWImageSize = newFwSize;
drivers/message/fusion/mptctl.c
1697
mptctl_mpt_command (MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
1711
rc = mptctl_do_mpt_command (ioc, karg, &uarg->MF);
drivers/message/fusion/mptctl.c
1729
mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __user *mfPtr)
drivers/message/fusion/mptctl.c
1754
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptctl.c
1755
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptctl.c
1756
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptctl.c
1761
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptctl.c
1769
karg.dataSgeOffset > ioc->req_sz / 4)
drivers/message/fusion/mptctl.c
1776
sz += ioc->SGE_size;
drivers/message/fusion/mptctl.c
1778
sz += ioc->SGE_size;
drivers/message/fusion/mptctl.c
1780
if (sz > ioc->req_sz) {
drivers/message/fusion/mptctl.c
1783
ioc->name, __FILE__, __LINE__, sz, ioc->req_sz);
drivers/message/fusion/mptctl.c
1789
if ((mf = mpt_get_msg_frame(mptctl_id, ioc)) == NULL)
drivers/message/fusion/mptctl.c
179
mptctl_syscall_down(MPT_ADAPTER *ioc, int nonblock)
drivers/message/fusion/mptctl.c
1803
ioc->name, __FILE__, __LINE__, mfPtr);
drivers/message/fusion/mptctl.c
1814
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sending mpi function (0x%02X), req=%p\n",
drivers/message/fusion/mptctl.c
1815
ioc->name, hdr->Function, mf));
drivers/message/fusion/mptctl.c
1827
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "\ttype=0x%02x ext_type=0x%02x "
drivers/message/fusion/mptctl.c
1828
"number=0x%02x action=0x%02x\n", ioc->name,
drivers/message/fusion/mptctl.c
184
if (!mutex_trylock(&ioc->ioctl_cmds.mutex))
drivers/message/fusion/mptctl.c
1847
if (ioc->sh) {
drivers/message/fusion/mptctl.c
1854
id = (ioc->devices_per_bus == 0) ? 256 : ioc->devices_per_bus;
drivers/message/fusion/mptctl.c
1858
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
1863
if (pScsiReq->Bus >= ioc->number_of_buses) {
drivers/message/fusion/mptctl.c
1866
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
187
if (mutex_lock_interruptible(&ioc->ioctl_cmds.mutex))
drivers/message/fusion/mptctl.c
1872
pScsiReq->MsgFlags |= mpt_msg_flags(ioc);
drivers/message/fusion/mptctl.c
1887
cpu_to_le32(ioc->sense_buf_low_dma
drivers/message/fusion/mptctl.c
1890
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptctl.c
1921
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
1937
if (!ioc->sh) {
drivers/message/fusion/mptctl.c
1940
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
1952
if (ioc->sh) {
drivers/message/fusion/mptctl.c
1959
pScsiReq->MsgFlags |= mpt_msg_flags(ioc);
drivers/message/fusion/mptctl.c
1974
cpu_to_le32(ioc->sense_buf_low_dma
drivers/message/fusion/mptctl.c
1997
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
2007
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
201
mptctl_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req, MPT_FRAME_HDR *reply)
drivers/message/fusion/mptctl.c
2010
ioc->name, pScsiTm->TaskType, le32_to_cpu
drivers/message/fusion/mptctl.c
2025
high_addr = cpu_to_le32((u32)((u64)ioc->req_frames_dma >> 32));
drivers/message/fusion/mptctl.c
2026
sense_high= cpu_to_le32((u32)((u64)ioc->sense_buf_pool_dma >> 32));
drivers/message/fusion/mptctl.c
2032
if ((pInit->Flags != 0) || (pInit->MaxDevices != ioc->facts.MaxDevices) ||
drivers/message/fusion/mptctl.c
2033
(pInit->MaxBuses != ioc->facts.MaxBuses) ||
drivers/message/fusion/mptctl.c
2034
(pInit->ReplyFrameSize != cpu_to_le16(ioc->reply_sz)) ||
drivers/message/fusion/mptctl.c
2039
ioc->name, __FILE__, __LINE__);
drivers/message/fusion/mptctl.c
2072
ioc->name, __FILE__, __LINE__, hdr->Function);
drivers/message/fusion/mptctl.c
210
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "completing mpi function "
drivers/message/fusion/mptctl.c
2105
bufOut.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptctl.c
211
"(0x%02X), req=%p, reply=%p\n", ioc->name, req->u.hdr.Function,
drivers/message/fusion/mptctl.c
2116
ioc->add_sge(psge, flagsLength, dma_addr_out);
drivers/message/fusion/mptctl.c
2117
psge += ioc->SGE_size;
drivers/message/fusion/mptctl.c
2128
ioc->name, __FILE__, __LINE__,karg.dataOutBufPtr);
drivers/message/fusion/mptctl.c
2140
bufIn.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptctl.c
2151
ioc->add_sge(psge, flagsLength, dma_addr_in);
drivers/message/fusion/mptctl.c
2157
ioc->add_sge(psge, flagsLength, (dma_addr_t) -1);
drivers/message/fusion/mptctl.c
2160
SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, hdr->MsgContext);
drivers/message/fusion/mptctl.c
2161
INITIALIZE_MGMT_STATUS(ioc->ioctl_cmds.status)
drivers/message/fusion/mptctl.c
2164
mutex_lock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
2165
if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0) {
drivers/message/fusion/mptctl.c
2166
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
2170
DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)mf);
drivers/message/fusion/mptctl.c
2172
if ((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) &&
drivers/message/fusion/mptctl.c
2173
(ioc->facts.MsgVersion >= MPI_VERSION_01_05))
drivers/message/fusion/mptctl.c
2174
mpt_put_msg_frame_hi_pri(mptctl_id, ioc, mf);
drivers/message/fusion/mptctl.c
2176
rc =mpt_send_handshake_request(mptctl_id, ioc,
drivers/message/fusion/mptctl.c
2179
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptctl.c
218
if (ioc->ioctl_cmds.msg_context != req->u.hdr.MsgContext)
drivers/message/fusion/mptctl.c
2181
ioc->name, ioc, mf));
drivers/message/fusion/mptctl.c
2182
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptctl.c
2184
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
2190
mpt_put_msg_frame(mptctl_id, ioc, mf);
drivers/message/fusion/mptctl.c
2195
timeleft = wait_for_completion_timeout(&ioc->ioctl_cmds.done,
drivers/message/fusion/mptctl.c
2197
if (!(ioc->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptctl.c
2199
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "%s: TIMED OUT!\n",
drivers/message/fusion/mptctl.c
2200
ioc->name, __func__));
drivers/message/fusion/mptctl.c
2201
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
drivers/message/fusion/mptctl.c
2203
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
221
ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptctl.c
2210
ioc->name, mpt_GetIocState(ioc, 0), function);
drivers/message/fusion/mptctl.c
2212
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
2213
mptctl_timeout_expired(ioc, mf);
drivers/message/fusion/mptctl.c
2221
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
2229
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID) {
drivers/message/fusion/mptctl.c
2230
if (karg.maxReplyBytes < ioc->reply_sz) {
drivers/message/fusion/mptctl.c
2232
4*ioc->ioctl_cmds.reply[2]);
drivers/message/fusion/mptctl.c
2234
sz = min(ioc->reply_sz, 4*ioc->ioctl_cmds.reply[2]);
drivers/message/fusion/mptctl.c
2238
ioc->ioctl_cmds.reply, sz)){
drivers/message/fusion/mptctl.c
2242
ioc->name, __FILE__, __LINE__, karg.replyFrameBufPtr);
drivers/message/fusion/mptctl.c
2251
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_SENSE_VALID) {
drivers/message/fusion/mptctl.c
2255
ioc->ioctl_cmds.sense, sz)) {
drivers/message/fusion/mptctl.c
2258
ioc->name, __FILE__, __LINE__,
drivers/message/fusion/mptctl.c
226
ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptctl.c
2269
if ((ioc->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD) &&
drivers/message/fusion/mptctl.c
227
sz = min(ioc->reply_sz, 4*reply->u.reply.MsgLength);
drivers/message/fusion/mptctl.c
2276
ioc->name, __FILE__, __LINE__,
drivers/message/fusion/mptctl.c
228
memcpy(ioc->ioctl_cmds.reply, reply, sz);
drivers/message/fusion/mptctl.c
2284
CLEAR_MGMT_STATUS(ioc->ioctl_cmds.status)
drivers/message/fusion/mptctl.c
2285
SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, 0);
drivers/message/fusion/mptctl.c
2290
dma_free_coherent(&ioc->pcidev->dev, bufOut.len,
drivers/message/fusion/mptctl.c
2295
dma_free_coherent(&ioc->pcidev->dev, bufIn.len,
drivers/message/fusion/mptctl.c
2303
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptctl.c
231
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
232
"iocstatus (0x%04X), loginfo (0x%08X)\n", ioc->name,
drivers/message/fusion/mptctl.c
2320
mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
drivers/message/fusion/mptctl.c
2351
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": mptctl_hp_hostinfo called.\n",
drivers/message/fusion/mptctl.c
2352
ioc->name));
drivers/message/fusion/mptctl.c
2357
pdev = (struct pci_dev *) ioc->pcidev;
drivers/message/fusion/mptctl.c
2369
if (ioc->sh != NULL)
drivers/message/fusion/mptctl.c
2370
karg.host_no = ioc->sh->host_no;
drivers/message/fusion/mptctl.c
2377
ioc->facts.FWVersion.Struct.Major,
drivers/message/fusion/mptctl.c
2378
ioc->facts.FWVersion.Struct.Minor,
drivers/message/fusion/mptctl.c
2379
ioc->facts.FWVersion.Struct.Unit,
drivers/message/fusion/mptctl.c
2380
ioc->facts.FWVersion.Struct.Dev);
drivers/message/fusion/mptctl.c
2396
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptctl.c
2401
pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptctl.c
2406
if (mpt_config(ioc, &cfg) == 0) {
drivers/message/fusion/mptctl.c
241
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
2414
dma_free_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptctl.c
2421
rc = mpt_GetIocState(ioc, 1);
drivers/message/fusion/mptctl.c
243
"tag = (0x%04x), transfer_count (0x%08x)\n", ioc->name,
drivers/message/fusion/mptctl.c
2440
if ((ioc->bus_type == SAS) || (ioc->bus_type == FC))
drivers/message/fusion/mptctl.c
2448
if (ioc->sh != NULL) {
drivers/message/fusion/mptctl.c
2449
MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptctl.c
2452
karg.hard_resets = ioc->hard_resets;
drivers/message/fusion/mptctl.c
2453
karg.soft_resets = ioc->soft_resets;
drivers/message/fusion/mptctl.c
2454
karg.timeouts = ioc->timeouts;
drivers/message/fusion/mptctl.c
2461
if ((mf = mpt_get_msg_frame(mptctl_id, ioc)) == NULL) {
drivers/message/fusion/mptctl.c
2462
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptctl.c
2463
"%s, no msg frames!!\n", ioc->name, __func__));
drivers/message/fusion/mptctl.c
2481
pbuf = dma_alloc_coherent(&ioc->pcidev->dev, 4, &buf_dma, GFP_KERNEL);
drivers/message/fusion/mptctl.c
2484
ioc->add_sge((char *)&IstwiRWRequest->SGL,
drivers/message/fusion/mptctl.c
2487
SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context,
drivers/message/fusion/mptctl.c
2489
INITIALIZE_MGMT_STATUS(ioc->ioctl_cmds.status)
drivers/message/fusion/mptctl.c
2490
mpt_put_msg_frame(mptctl_id, ioc, mf);
drivers/message/fusion/mptctl.c
2493
timeleft = wait_for_completion_timeout(&ioc->ioctl_cmds.done,
drivers/message/fusion/mptctl.c
2495
if (!(ioc->ioctl_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptctl.c
2496
printk(MYIOC_s_WARN_FMT "%s: failed\n", ioc->name, __func__);
drivers/message/fusion/mptctl.c
2497
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
drivers/message/fusion/mptctl.c
2498
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptctl.c
2504
ioc->name, mpt_GetIocState(ioc, 0));
drivers/message/fusion/mptctl.c
2505
mptctl_timeout_expired(ioc, mf);
drivers/message/fusion/mptctl.c
2520
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_RF_VALID)
drivers/message/fusion/mptctl.c
2524
CLEAR_MGMT_STATUS(ioc->ioctl_cmds.status)
drivers/message/fusion/mptctl.c
2525
SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, 0);
drivers/message/fusion/mptctl.c
2528
dma_free_coherent(&ioc->pcidev->dev, 4, pbuf, buf_dma);
drivers/message/fusion/mptctl.c
2535
ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
254
sense_data = ((u8 *)ioc->sense_buf_pool +
drivers/message/fusion/mptctl.c
2555
mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
drivers/message/fusion/mptctl.c
256
memcpy(ioc->ioctl_cmds.sense, sense_data, sz);
drivers/message/fusion/mptctl.c
257
ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_SENSE_VALID;
drivers/message/fusion/mptctl.c
2577
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "mptctl_hp_targetinfo called.\n",
drivers/message/fusion/mptctl.c
2578
ioc->name));
drivers/message/fusion/mptctl.c
2582
if ((ioc->bus_type == SAS) || (ioc->bus_type == FC))
drivers/message/fusion/mptctl.c
2585
if ((ioc->spi_data.sdp0length == 0) || (ioc->sh == NULL))
drivers/message/fusion/mptctl.c
2588
if (ioc->sh->host_no != karg.hdr.host)
drivers/message/fusion/mptctl.c
2593
data_sz = ioc->spi_data.sdp0length * 4;
drivers/message/fusion/mptctl.c
2594
pg0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz, &page_dma,
drivers/message/fusion/mptctl.c
2597
hdr.PageVersion = ioc->spi_data.sdp0version;
drivers/message/fusion/mptctl.c
2610
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptctl.c
2633
dma_free_coherent(&ioc->pcidev->dev, data_sz, (u8 *)pg0_alloc,
drivers/message/fusion/mptctl.c
264
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptctl.c
2656
if ((mpt_config(ioc, &cfg) == 0) && (cfg.cfghdr.hdr->PageLength > 0)) {
drivers/message/fusion/mptctl.c
266
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptctl.c
2660
pg3_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptctl.c
2665
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptctl.c
267
ioc->ioctl_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptctl.c
2670
dma_free_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptctl.c
2674
hd = shost_priv(ioc->sh);
drivers/message/fusion/mptctl.c
268
complete(&ioc->ioctl_cmds.done);
drivers/message/fusion/mptctl.c
2683
ioc->name, __FILE__, __LINE__, uarg);
drivers/message/fusion/mptctl.c
269
if (ioc->bus_type == SAS)
drivers/message/fusion/mptctl.c
270
ioc->schedule_target_reset(ioc);
drivers/message/fusion/mptctl.c
272
ioc->ioctl_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptctl.c
273
complete(&ioc->ioctl_cmds.done);
drivers/message/fusion/mptctl.c
2852
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptctl.c
2854
mutex_init(&ioc->ioctl_cmds.mutex);
drivers/message/fusion/mptctl.c
2855
init_completion(&ioc->ioctl_cmds.done);
drivers/message/fusion/mptctl.c
286
mptctl_taskmgmt_reply(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
drivers/message/fusion/mptctl.c
291
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
293
ioc->name, mf, mr));
drivers/message/fusion/mptctl.c
295
ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptctl.c
300
ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptctl.c
301
memcpy(ioc->taskmgmt_cmds.reply, mr,
drivers/message/fusion/mptctl.c
304
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptctl.c
305
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptctl.c
306
ioc->taskmgmt_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptctl.c
307
complete(&ioc->taskmgmt_cmds.done);
drivers/message/fusion/mptctl.c
308
if (ioc->bus_type == SAS)
drivers/message/fusion/mptctl.c
309
ioc->schedule_target_reset(ioc);
drivers/message/fusion/mptctl.c
316
mptctl_do_taskmgmt(MPT_ADAPTER *ioc, u8 tm_type, u8 bus_id, u8 target_id)
drivers/message/fusion/mptctl.c
327
mutex_lock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
328
if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0) {
drivers/message/fusion/mptctl.c
329
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
335
mf = mpt_get_msg_frame(mptctl_taskmgmt_id, ioc);
drivers/message/fusion/mptctl.c
337
dtmprintk(ioc,
drivers/message/fusion/mptctl.c
339
ioc->name));
drivers/message/fusion/mptctl.c
340
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptctl.c
345
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt request (mf=%p)\n",
drivers/message/fusion/mptctl.c
346
ioc->name, mf));
drivers/message/fusion/mptctl.c
353
(ioc->bus_type == FC))
drivers/message/fusion/mptctl.c
367
switch (ioc->bus_type) {
drivers/message/fusion/mptctl.c
380
dtmprintk(ioc,
drivers/message/fusion/mptctl.c
382
ioc->name, tm_type, timeout));
drivers/message/fusion/mptctl.c
384
INITIALIZE_MGMT_STATUS(ioc->taskmgmt_cmds.status)
drivers/message/fusion/mptctl.c
385
if ((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) &&
drivers/message/fusion/mptctl.c
386
(ioc->facts.MsgVersion >= MPI_VERSION_01_05))
drivers/message/fusion/mptctl.c
387
mpt_put_msg_frame_hi_pri(mptctl_taskmgmt_id, ioc, mf);
drivers/message/fusion/mptctl.c
389
retval = mpt_send_handshake_request(mptctl_taskmgmt_id, ioc,
drivers/message/fusion/mptctl.c
392
dfailprintk(ioc,
drivers/message/fusion/mptctl.c
395
" (ioc %p, mf %p, rc=%d) \n", ioc->name,
drivers/message/fusion/mptctl.c
396
ioc, mf, retval));
drivers/message/fusion/mptctl.c
397
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptctl.c
398
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptctl.c
404
ii = wait_for_completion_timeout(&ioc->taskmgmt_cmds.done, timeout*HZ);
drivers/message/fusion/mptctl.c
406
if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptctl.c
407
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
408
"TaskMgmt failed\n", ioc->name));
drivers/message/fusion/mptctl.c
409
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptctl.c
410
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptctl.c
411
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptctl.c
418
if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
drivers/message/fusion/mptctl.c
419
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
420
"TaskMgmt failed\n", ioc->name));
drivers/message/fusion/mptctl.c
425
pScsiTmReply = (SCSITaskMgmtReply_t *) ioc->taskmgmt_cmds.reply;
drivers/message/fusion/mptctl.c
426
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
429
"term_cmnds=%d\n", ioc->name, pScsiTmReply->Bus,
drivers/message/fusion/mptctl.c
443
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
444
"TaskMgmt failed\n", ioc->name));
drivers/message/fusion/mptctl.c
449
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptctl.c
450
CLEAR_MGMT_STATUS(ioc->taskmgmt_cmds.status)
drivers/message/fusion/mptctl.c
461
mptctl_timeout_expired(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf)
drivers/message/fusion/mptctl.c
468
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": %s\n",
drivers/message/fusion/mptctl.c
469
ioc->name, __func__));
drivers/message/fusion/mptctl.c
472
mpt_halt_firmware(ioc);
drivers/message/fusion/mptctl.c
474
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptctl.c
475
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptctl.c
476
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptctl.c
477
CLEAR_MGMT_PENDING_STATUS(ioc->ioctl_cmds.status)
drivers/message/fusion/mptctl.c
478
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptctl.c
481
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptctl.c
484
CLEAR_MGMT_PENDING_STATUS(ioc->ioctl_cmds.status)
drivers/message/fusion/mptctl.c
486
if (ioc->bus_type == SAS) {
drivers/message/fusion/mptctl.c
488
ret_val = mptctl_do_taskmgmt(ioc,
drivers/message/fusion/mptctl.c
492
ret_val = mptctl_do_taskmgmt(ioc,
drivers/message/fusion/mptctl.c
500
ret_val = mptctl_do_taskmgmt(ioc,
drivers/message/fusion/mptctl.c
507
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Calling Reset! \n",
drivers/message/fusion/mptctl.c
508
ioc->name));
drivers/message/fusion/mptctl.c
509
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptctl.c
510
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptctl.c
522
mptctl_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptctl.c
526
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
527
"%s: MPT_IOC_SETUP_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptctl.c
530
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
531
"%s: MPT_IOC_PRE_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptctl.c
534
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
535
"%s: MPT_IOC_POST_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptctl.c
536
if (ioc->ioctl_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptctl.c
537
ioc->ioctl_cmds.status |= MPT_MGMT_STATUS_DID_IOCRESET;
drivers/message/fusion/mptctl.c
538
complete(&ioc->ioctl_cmds.done);
drivers/message/fusion/mptctl.c
551
mptctl_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
drivers/message/fusion/mptctl.c
557
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s() called\n",
drivers/message/fusion/mptctl.c
558
ioc->name, __func__));
drivers/message/fusion/mptctl.c
567
ioc->aen_event_read_flag=1;
drivers/message/fusion/mptctl.c
568
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Raised SIGIO to application\n",
drivers/message/fusion/mptctl.c
569
ioc->name));
drivers/message/fusion/mptctl.c
570
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
571
"Raised SIGIO to application\n", ioc->name));
drivers/message/fusion/mptctl.c
580
if(ioc->aen_event_read_flag)
drivers/message/fusion/mptctl.c
586
if (ioc->events && (ioc->eventTypes & ( 1 << event))) {
drivers/message/fusion/mptctl.c
587
ioc->aen_event_read_flag=1;
drivers/message/fusion/mptctl.c
588
dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
589
"Raised SIGIO to application\n", ioc->name));
drivers/message/fusion/mptctl.c
590
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptctl.c
591
"Raised SIGIO to application\n", ioc->name));
drivers/message/fusion/mptctl.c
600
MPT_ADAPTER *ioc;
drivers/message/fusion/mptctl.c
604
list_for_each_entry(ioc, &ioc_list, list)
drivers/message/fusion/mptctl.c
605
ioc->aen_event_read_flag=0;
drivers/message/fusion/mptdebug.h
150
DBG_DUMP_FW_DOWNLOAD(MPT_ADAPTER *ioc, u32 *mfp, int numfrags)
drivers/message/fusion/mptdebug.h
154
if (!(ioc->debug_level & MPT_DEBUG))
drivers/message/fusion/mptdebug.h
163
DBG_DUMP_PUT_MSG_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
167
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
drivers/message/fusion/mptdebug.h
170
ioc->name, mfp);
drivers/message/fusion/mptdebug.h
171
n = ioc->req_sz/4 - 1;
drivers/message/fusion/mptdebug.h
183
DBG_DUMP_FW_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
187
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
drivers/message/fusion/mptdebug.h
197
DBG_DUMP_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
201
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
drivers/message/fusion/mptdebug.h
213
DBG_DUMP_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
217
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
drivers/message/fusion/mptdebug.h
227
DBG_DUMP_REQUEST_FRAME_HDR(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
231
if (!(ioc->debug_level & MPT_DEBUG_MSG_FRAME))
drivers/message/fusion/mptdebug.h
241
DBG_DUMP_TM_REQUEST_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
245
if (!(ioc->debug_level & MPT_DEBUG_TM))
drivers/message/fusion/mptdebug.h
258
DBG_DUMP_TM_REPLY_FRAME(MPT_ADAPTER *ioc, u32 *mfp)
drivers/message/fusion/mptdebug.h
262
if (!(ioc->debug_level & MPT_DEBUG_TM))
drivers/message/fusion/mptfc.c
1005
mptfc_WriteFcPortPage1(ioc, ii);
drivers/message/fusion/mptfc.c
1011
mptfc_init_host_attr(MPT_ADAPTER *ioc,int portnum)
drivers/message/fusion/mptfc.c
1026
pp0 = &ioc->fc_port_page0[portnum];
drivers/message/fusion/mptfc.c
1027
sh = ioc->sh;
drivers/message/fusion/mptfc.c
1031
ioc->prod_name,
drivers/message/fusion/mptfc.c
1033
ioc->facts.FWVersion.Word);
drivers/message/fusion/mptfc.c
1107
MPT_ADAPTER *ioc =
drivers/message/fusion/mptfc.c
1111
for (ii=0; ii < ioc->facts.NumberOfPorts; ii++)
drivers/message/fusion/mptfc.c
1112
(void) mptfc_GetFcPortPage0(ioc, ii);
drivers/message/fusion/mptfc.c
1119
MPT_ADAPTER *ioc =
drivers/message/fusion/mptfc.c
1127
list_for_each_entry(ri, &ioc->fc_rports, list) {
drivers/message/fusion/mptfc.c
1141
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
1143
ioc->name,
drivers/message/fusion/mptfc.c
1144
ioc->sh->host_no,
drivers/message/fusion/mptfc.c
1153
MPT_ADAPTER *ioc =
drivers/message/fusion/mptfc.c
1162
list_for_each_entry(ri, &ioc->fc_rports, list) {
drivers/message/fusion/mptfc.c
1172
for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptfc.c
1173
(void) mptfc_GetFcPortPage0(ioc, ii);
drivers/message/fusion/mptfc.c
1174
mptfc_init_host_attr(ioc, ii); /* refresh */
drivers/message/fusion/mptfc.c
1175
mptfc_GetFcDevPage0(ioc, ii, mptfc_register_dev);
drivers/message/fusion/mptfc.c
1179
list_for_each_entry(ri, &ioc->fc_rports, list) {
drivers/message/fusion/mptfc.c
1196
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
1198
ioc->name,
drivers/message/fusion/mptfc.c
1199
ioc->sh->host_no,
drivers/message/fusion/mptfc.c
1210
MPT_ADAPTER *ioc;
drivers/message/fusion/mptfc.c
1222
ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptfc.c
1223
ioc->DoneCtx = mptfcDoneCtx;
drivers/message/fusion/mptfc.c
1224
ioc->TaskCtx = mptfcTaskCtx;
drivers/message/fusion/mptfc.c
1225
ioc->InternalCtx = mptfcInternalCtx;
drivers/message/fusion/mptfc.c
1229
if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) {
drivers/message/fusion/mptfc.c
1232
ioc->name);
drivers/message/fusion/mptfc.c
1237
if (!ioc->active) {
drivers/message/fusion/mptfc.c
1239
ioc->name);
drivers/message/fusion/mptfc.c
1247
for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptfc.c
1248
if (ioc->pfacts[ii].ProtocolFlags &
drivers/message/fusion/mptfc.c
1256
ioc->name, ioc);
drivers/message/fusion/mptfc.c
1265
ioc->name);
drivers/message/fusion/mptfc.c
1270
spin_lock_init(&ioc->fc_rescan_work_lock);
drivers/message/fusion/mptfc.c
1271
INIT_WORK(&ioc->fc_rescan_work, mptfc_rescan_devices);
drivers/message/fusion/mptfc.c
1272
INIT_WORK(&ioc->fc_setup_reset_work, mptfc_setup_reset);
drivers/message/fusion/mptfc.c
1273
INIT_WORK(&ioc->fc_lsc_work, mptfc_link_status_change);
drivers/message/fusion/mptfc.c
1275
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptfc.c
1279
ioc->sh = sh;
drivers/message/fusion/mptfc.c
1288
sh->max_id = ioc->pfacts->MaxDevices;
drivers/message/fusion/mptfc.c
1293
sh->unique_id = ioc->id;
drivers/message/fusion/mptfc.c
1304
scale = ioc->req_sz/ioc->SGE_size;
drivers/message/fusion/mptfc.c
1305
if (ioc->sg_addr_size == sizeof(u64)) {
drivers/message/fusion/mptfc.c
1307
(ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptfc.c
1308
(ioc->req_sz - 60) / ioc->SGE_size;
drivers/message/fusion/mptfc.c
1311
(ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptfc.c
1312
(ioc->req_sz - 64) / ioc->SGE_size;
drivers/message/fusion/mptfc.c
1317
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
1319
ioc->name, numSGE, sh->sg_tablesize));
drivers/message/fusion/mptfc.c
1323
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptfc.c
1326
hd->ioc = ioc;
drivers/message/fusion/mptfc.c
1331
ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_KERNEL);
drivers/message/fusion/mptfc.c
1332
if (!ioc->ScsiLookup) {
drivers/message/fusion/mptfc.c
1336
spin_lock_init(&ioc->scsi_lookup_lock);
drivers/message/fusion/mptfc.c
1338
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n",
drivers/message/fusion/mptfc.c
1339
ioc->name, ioc->ScsiLookup));
drivers/message/fusion/mptfc.c
1344
error = scsi_add_host (sh, &ioc->pcidev->dev);
drivers/message/fusion/mptfc.c
1346
dprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptfc.c
1347
"scsi_add_host failed\n", ioc->name));
drivers/message/fusion/mptfc.c
1353
ioc->fc_rescan_work_q = alloc_ordered_workqueue(
drivers/message/fusion/mptfc.c
1355
if (!ioc->fc_rescan_work_q) {
drivers/message/fusion/mptfc.c
1364
for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptfc.c
1365
(void) mptfc_GetFcPortPage0(ioc, ii);
drivers/message/fusion/mptfc.c
1367
mptfc_SetFcPortPage1_defaults(ioc);
drivers/message/fusion/mptfc.c
1374
queue_work(ioc->fc_rescan_work_q, &ioc->fc_rescan_work);
drivers/message/fusion/mptfc.c
1375
flush_workqueue(ioc->fc_rescan_work_q);
drivers/message/fusion/mptfc.c
1401
mptfc_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
drivers/message/fusion/mptfc.c
1407
if (ioc->bus_type != FC)
drivers/message/fusion/mptfc.c
1410
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n",
drivers/message/fusion/mptfc.c
1411
ioc->name, event));
drivers/message/fusion/mptfc.c
1413
if (ioc->sh == NULL || shost_priv(ioc->sh) == NULL)
drivers/message/fusion/mptfc.c
1418
spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1419
if (ioc->fc_rescan_work_q) {
drivers/message/fusion/mptfc.c
1420
queue_work(ioc->fc_rescan_work_q,
drivers/message/fusion/mptfc.c
1421
&ioc->fc_rescan_work);
drivers/message/fusion/mptfc.c
1423
spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1426
spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1427
if (ioc->fc_rescan_work_q) {
drivers/message/fusion/mptfc.c
1428
queue_work(ioc->fc_rescan_work_q,
drivers/message/fusion/mptfc.c
1429
&ioc->fc_lsc_work);
drivers/message/fusion/mptfc.c
1431
spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1434
rc = mptscsih_event_process(ioc,pEvReply);
drivers/message/fusion/mptfc.c
1441
mptfc_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptfc.c
1446
rc = mptscsih_ioc_reset(ioc,reset_phase);
drivers/message/fusion/mptfc.c
1447
if ((ioc->bus_type != FC) || (!rc))
drivers/message/fusion/mptfc.c
1451
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
1452
": IOC %s_reset routed to FC host driver!\n",ioc->name,
drivers/message/fusion/mptfc.c
1457
spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1458
if (ioc->fc_rescan_work_q) {
drivers/message/fusion/mptfc.c
1459
queue_work(ioc->fc_rescan_work_q,
drivers/message/fusion/mptfc.c
1460
&ioc->fc_setup_reset_work);
drivers/message/fusion/mptfc.c
1462
spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1469
mptfc_SetFcPortPage1_defaults(ioc);
drivers/message/fusion/mptfc.c
1470
spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1471
if (ioc->fc_rescan_work_q) {
drivers/message/fusion/mptfc.c
1472
queue_work(ioc->fc_rescan_work_q,
drivers/message/fusion/mptfc.c
1473
&ioc->fc_rescan_work);
drivers/message/fusion/mptfc.c
1475
spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1528
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptfc.c
1535
if ((work_q=ioc->fc_rescan_work_q)) {
drivers/message/fusion/mptfc.c
1536
spin_lock_irqsave(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1537
ioc->fc_rescan_work_q = NULL;
drivers/message/fusion/mptfc.c
1538
spin_unlock_irqrestore(&ioc->fc_rescan_work_lock, flags);
drivers/message/fusion/mptfc.c
1542
fc_remove_host(ioc->sh);
drivers/message/fusion/mptfc.c
1544
list_for_each_entry_safe(p, n, &ioc->fc_rports, list) {
drivers/message/fusion/mptfc.c
1549
for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptfc.c
1550
if (ioc->fc_data.fc_port_page1[ii].data) {
drivers/message/fusion/mptfc.c
1551
dma_free_coherent(&ioc->pcidev->dev,
drivers/message/fusion/mptfc.c
1552
ioc->fc_data.fc_port_page1[ii].pg_sz,
drivers/message/fusion/mptfc.c
1553
ioc->fc_data.fc_port_page1[ii].data,
drivers/message/fusion/mptfc.c
1554
ioc->fc_data.fc_port_page1[ii].dma);
drivers/message/fusion/mptfc.c
1555
ioc->fc_data.fc_port_page1[ii].data = NULL;
drivers/message/fusion/mptfc.c
1559
scsi_remove_host(ioc->sh);
drivers/message/fusion/mptfc.c
194
MPT_ADAPTER *ioc;
drivers/message/fusion/mptfc.c
198
ioc = hd->ioc;
drivers/message/fusion/mptfc.c
201
|| (loops > 0 && ioc->active == 0)) {
drivers/message/fusion/mptfc.c
203
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
206
ioc->name, ioc->sh->host_no,
drivers/message/fusion/mptfc.c
207
dev_name(&rport->dev), ready, ioc->active));
drivers/message/fusion/mptfc.c
214
if (ready == DID_NO_CONNECT || ioc->active == 0) {
drivers/message/fusion/mptfc.c
215
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
218
ioc->name, ioc->sh->host_no,
drivers/message/fusion/mptfc.c
219
dev_name(&rport->dev), ready, ioc->active));
drivers/message/fusion/mptfc.c
235
dfcprintk (hd->ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
237
hd->ioc->name, shost->host_no,
drivers/message/fusion/mptfc.c
254
dfcprintk (hd->ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
256
hd->ioc->name, shost->host_no,
drivers/message/fusion/mptfc.c
272
list_for_each_entry(ri, &hd->ioc->fc_rports, list) {
drivers/message/fusion/mptfc.c
284
dfcprintk (hd->ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
286
hd->ioc->name, shost->host_no,
drivers/message/fusion/mptfc.c
321
mptfc_GetFcDevPage0(MPT_ADAPTER *ioc, int ioc_port,
drivers/message/fusion/mptfc.c
322
void(*func)(MPT_ADAPTER *ioc,int channel, FCDevicePage0_t *arg))
drivers/message/fusion/mptfc.c
337
int max_bus = ioc->facts.MaxBuses;
drivers/message/fusion/mptfc.c
340
max_targ = (ioc->facts.MaxDevices == 0) ? 256 : ioc->facts.MaxDevices;
drivers/message/fusion/mptfc.c
365
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptfc.c
372
ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptfc.c
381
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptfc.c
408
dma_free_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptfc.c
423
func(ioc, ioc_port, fc);
drivers/message/fusion/mptfc.c
460
mptfc_register_dev(MPT_ADAPTER *ioc, int channel, FCDevicePage0_t *pg0)
drivers/message/fusion/mptfc.c
478
list_for_each_entry(ri, &ioc->fc_rports, list) {
drivers/message/fusion/mptfc.c
481
list_move_tail(&ri->list, &ioc->fc_rports);
drivers/message/fusion/mptfc.c
490
list_add_tail(&ri->list, &ioc->fc_rports);
drivers/message/fusion/mptfc.c
499
rport = fc_remote_port_add(ioc->sh, channel, &rport_ids);
drivers/message/fusion/mptfc.c
523
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
526
ioc->name,
drivers/message/fusion/mptfc.c
527
ioc->sh->host_no,
drivers/message/fusion/mptfc.c
606
mptfc_dump_lun_info(MPT_ADAPTER *ioc, struct fc_rport *rport, struct scsi_device *sdev,
drivers/message/fusion/mptfc.c
615
dfcprintk (ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptfc.c
618
ioc->name,
drivers/message/fusion/mptfc.c
642
MPT_ADAPTER *ioc;
drivers/message/fusion/mptfc.c
651
ioc = hd->ioc;
drivers/message/fusion/mptfc.c
656
ioc->name, sizeof(VirtDevice));
drivers/message/fusion/mptfc.c
665
vtarget->ioc_id = ioc->id;
drivers/message/fusion/mptfc.c
675
mptfc_dump_lun_info(ioc, rport, sdev, vtarget);
drivers/message/fusion/mptfc.c
720
mptfc_display_port_link_speed(MPT_ADAPTER *ioc, int portnum, FCPortPage0_t *pp0dest)
drivers/message/fusion/mptfc.c
728
old_speed = ioc->fc_link_speed[portnum];
drivers/message/fusion/mptfc.c
746
ioc->name, new);
drivers/message/fusion/mptfc.c
750
ioc->name, old, new);
drivers/message/fusion/mptfc.c
752
ioc->fc_link_speed[portnum] = new_speed;
drivers/message/fusion/mptfc.c
769
mptfc_GetFcPortPage0(MPT_ADAPTER *ioc, int portnum)
drivers/message/fusion/mptfc.c
796
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptfc.c
804
ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptfc.c
813
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptfc.c
815
pp0dest = &ioc->fc_port_page0[portnum];
drivers/message/fusion/mptfc.c
854
ioc->name);
drivers/message/fusion/mptfc.c
856
mptfc_display_port_link_speed(ioc, portnum, pp0dest);
drivers/message/fusion/mptfc.c
859
dma_free_coherent(&ioc->pcidev->dev, data_sz, ppage0_alloc,
drivers/message/fusion/mptfc.c
867
mptfc_WriteFcPortPage1(MPT_ADAPTER *ioc, int portnum)
drivers/message/fusion/mptfc.c
876
if (!(ioc->fc_data.fc_port_page1[portnum].data))
drivers/message/fusion/mptfc.c
891
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptfc.c
897
if (hdr.PageLength*4 != ioc->fc_data.fc_port_page1[portnum].pg_sz)
drivers/message/fusion/mptfc.c
900
cfg.physAddr = ioc->fc_data.fc_port_page1[portnum].dma;
drivers/message/fusion/mptfc.c
904
rc = mpt_config(ioc, &cfg);
drivers/message/fusion/mptfc.c
910
mptfc_GetFcPortPage1(MPT_ADAPTER *ioc, int portnum)
drivers/message/fusion/mptfc.c
934
if ((rc = mpt_config(ioc, &cfg)) != 0)
drivers/message/fusion/mptfc.c
942
if (ioc->fc_data.fc_port_page1[portnum].data == NULL) {
drivers/message/fusion/mptfc.c
947
page1_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptfc.c
953
page1_alloc = ioc->fc_data.fc_port_page1[portnum].data;
drivers/message/fusion/mptfc.c
954
page1_dma = ioc->fc_data.fc_port_page1[portnum].dma;
drivers/message/fusion/mptfc.c
955
data_sz = ioc->fc_data.fc_port_page1[portnum].pg_sz;
drivers/message/fusion/mptfc.c
957
ioc->fc_data.fc_port_page1[portnum].data = NULL;
drivers/message/fusion/mptfc.c
958
dma_free_coherent(&ioc->pcidev->dev, data_sz,
drivers/message/fusion/mptfc.c
967
if ((rc = mpt_config(ioc, &cfg)) == 0) {
drivers/message/fusion/mptfc.c
968
ioc->fc_data.fc_port_page1[portnum].data = page1_alloc;
drivers/message/fusion/mptfc.c
969
ioc->fc_data.fc_port_page1[portnum].pg_sz = data_sz;
drivers/message/fusion/mptfc.c
970
ioc->fc_data.fc_port_page1[portnum].dma = page1_dma;
drivers/message/fusion/mptfc.c
973
ioc->fc_data.fc_port_page1[portnum].data = NULL;
drivers/message/fusion/mptfc.c
974
dma_free_coherent(&ioc->pcidev->dev, data_sz, page1_alloc,
drivers/message/fusion/mptfc.c
982
mptfc_SetFcPortPage1_defaults(MPT_ADAPTER *ioc)
drivers/message/fusion/mptfc.c
992
for (ii=0; ii<ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptfc.c
993
if (mptfc_GetFcPortPage1(ioc, ii) != 0)
drivers/message/fusion/mptfc.c
995
pp1 = ioc->fc_data.fc_port_page1[ii].data;
drivers/message/fusion/mptlan.c
126
static int lan_reply (MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf,
drivers/message/fusion/mptlan.c
1383
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptlan.c
1387
for (i = 0; i < ioc->facts.NumberOfPorts; i++) {
drivers/message/fusion/mptlan.c
1390
ioc->name, ioc->pfacts[i].PortNumber,
drivers/message/fusion/mptlan.c
1391
ioc->pfacts[i].ProtocolFlags,
drivers/message/fusion/mptlan.c
1393
ioc->pfacts[i].ProtocolFlags));
drivers/message/fusion/mptlan.c
1395
if (!(ioc->pfacts[i].ProtocolFlags &
drivers/message/fusion/mptlan.c
1399
ioc->name);
drivers/message/fusion/mptlan.c
140
static int mpt_lan_ioc_reset(MPT_ADAPTER *ioc, int reset_phase);
drivers/message/fusion/mptlan.c
1403
dev = mpt_register_lan_device(ioc, i);
drivers/message/fusion/mptlan.c
1406
"port%d as a LAN device\n", ioc->name,
drivers/message/fusion/mptlan.c
1407
ioc->pfacts[i].PortNumber);
drivers/message/fusion/mptlan.c
141
static int mpt_lan_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
drivers/message/fusion/mptlan.c
1412
"registered as '%s'\n", ioc->name, dev->name);
drivers/message/fusion/mptlan.c
1418
ioc->netdev = dev;
drivers/message/fusion/mptlan.c
1429
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptlan.c
1430
struct net_device *dev = ioc->netdev;
drivers/message/fusion/mptlan.c
165
lan_reply (MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *reply)
drivers/message/fusion/mptlan.c
167
struct net_device *dev = ioc->netdev;
drivers/message/fusion/mptlan.c
297
mpt_lan_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptlan.c
299
struct net_device *dev = ioc->netdev;
drivers/message/fusion/mptlan.c
342
mpt_lan_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
drivers/message/fusion/mptsas.c
1015
mptsas_queue_device_delete(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1025
ioc->name, __func__, __LINE__);
drivers/message/fusion/mptsas.c
1031
fw_event->ioc = ioc;
drivers/message/fusion/mptsas.c
1032
mptsas_add_fw_event(ioc, fw_event, msecs_to_jiffies(1));
drivers/message/fusion/mptsas.c
1036
mptsas_queue_rescan(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
1043
ioc->name, __func__, __LINE__);
drivers/message/fusion/mptsas.c
1047
fw_event->ioc = ioc;
drivers/message/fusion/mptsas.c
1048
mptsas_add_fw_event(ioc, fw_event, msecs_to_jiffies(1));
drivers/message/fusion/mptsas.c
1065
mptsas_target_reset(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptsas.c
1069
if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0)
drivers/message/fusion/mptsas.c
1073
mf = mpt_get_msg_frame(mptsasDeviceResetCtx, ioc);
drivers/message/fusion/mptsas.c
1075
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptsas.c
1076
"%s, no msg frames @%d!!\n", ioc->name,
drivers/message/fusion/mptsas.c
1081
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt request (mf=%p)\n",
drivers/message/fusion/mptsas.c
1082
ioc->name, mf));
drivers/message/fusion/mptsas.c
1094
DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)mf);
drivers/message/fusion/mptsas.c
1096
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1098
ioc->name, MPI_SCSITASKMGMT_TASKTYPE_TARGET_RESET, channel, id));
drivers/message/fusion/mptsas.c
1100
mpt_put_msg_frame_hi_pri(mptsasDeviceResetCtx, ioc, mf);
drivers/message/fusion/mptsas.c
1106
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptsas.c
112
static inline void mptsas_set_rphy(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1135
mptsas_target_reset_queue(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1138
MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptsas.c
1146
vtarget = mptsas_find_vtarget(ioc, channel, id);
drivers/message/fusion/mptsas.c
115
(MPT_ADAPTER *ioc, u64 sas_address);
drivers/message/fusion/mptsas.c
1155
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptsas.c
1157
ioc->name, __func__, __LINE__));
drivers/message/fusion/mptsas.c
116
static int mptsas_sas_device_pg0(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1167
if (mptsas_target_reset(ioc, channel, id)) {
drivers/message/fusion/mptsas.c
118
static int mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1184
MPT_ADAPTER *ioc = (MPT_ADAPTER *)(iocp);
drivers/message/fusion/mptsas.c
1185
MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptsas.c
120
static int mptsas_add_end_device(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1203
if (mptsas_target_reset(ioc, channel, id))
drivers/message/fusion/mptsas.c
122
static void mptsas_del_end_device(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1220
mptsas_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
drivers/message/fusion/mptsas.c
1222
MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptsas.c
1228
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt completed: "
drivers/message/fusion/mptsas.c
1229
"(mf = %p, mr = %p)\n", ioc->name, mf, mr));
drivers/message/fusion/mptsas.c
1235
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1239
"term_cmnds = %d\n", ioc->name,
drivers/message/fusion/mptsas.c
1248
mptscsih_taskmgmt_response_code(ioc,
drivers/message/fusion/mptsas.c
1254
ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptsas.c
1255
ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptsas.c
1256
memcpy(ioc->taskmgmt_cmds.reply, mr,
drivers/message/fusion/mptsas.c
1258
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptsas.c
1259
ioc->taskmgmt_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptsas.c
126
(MPT_ADAPTER *ioc, u64 sas_address);
drivers/message/fusion/mptsas.c
1260
complete(&ioc->taskmgmt_cmds.done);
drivers/message/fusion/mptsas.c
1266
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptsas.c
127
static void mptsas_expander_delete(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1274
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1276
ioc->name, jiffies_to_msecs(jiffies -
drivers/message/fusion/mptsas.c
1287
if (mptsas_target_reset(ioc, channel, id))
drivers/message/fusion/mptsas.c
1296
if (!ioc->fw_events_off)
drivers/message/fusion/mptsas.c
1297
mptsas_queue_device_delete(ioc,
drivers/message/fusion/mptsas.c
130
static void mptsas_not_responding_devices(MPT_ADAPTER *ioc);
drivers/message/fusion/mptsas.c
1301
ioc->schedule_target_reset(ioc);
drivers/message/fusion/mptsas.c
131
static void mptsas_scan_sas_topology(MPT_ADAPTER *ioc);
drivers/message/fusion/mptsas.c
1314
mptsas_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptsas.c
1319
rc = mptscsih_ioc_reset(ioc, reset_phase);
drivers/message/fusion/mptsas.c
1320
if ((ioc->bus_type != SAS) || (!rc))
drivers/message/fusion/mptsas.c
1323
hd = shost_priv(ioc->sh);
drivers/message/fusion/mptsas.c
1324
if (!hd->ioc)
drivers/message/fusion/mptsas.c
1329
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1330
"%s: MPT_IOC_SETUP_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptsas.c
1331
mptsas_fw_event_off(ioc);
drivers/message/fusion/mptsas.c
1334
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1335
"%s: MPT_IOC_PRE_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptsas.c
1338
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1339
"%s: MPT_IOC_POST_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptsas.c
134
static void mptsas_volume_delete(MPT_ADAPTER *ioc, u8 id);
drivers/message/fusion/mptsas.c
1340
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptsas.c
1341
ioc->sas_mgmt.status |= MPT_MGMT_STATUS_DID_IOCRESET;
drivers/message/fusion/mptsas.c
1342
complete(&ioc->sas_mgmt.done);
drivers/message/fusion/mptsas.c
1344
mptsas_cleanup_fw_event_q(ioc);
drivers/message/fusion/mptsas.c
1345
mptsas_queue_rescan(ioc);
drivers/message/fusion/mptsas.c
135
void mptsas_schedule_target_reset(void *ioc);
drivers/message/fusion/mptsas.c
137
static void mptsas_print_phy_data(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
1370
mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
drivers/message/fusion/mptsas.c
1393
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
140
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1401
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
141
"---- IO UNIT PAGE 0 ------------\n", ioc->name));
drivers/message/fusion/mptsas.c
1411
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
142
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Handle=0x%X\n",
drivers/message/fusion/mptsas.c
1428
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
143
ioc->name, le16_to_cpu(phy_data->AttachedDeviceHandle)));
drivers/message/fusion/mptsas.c
144
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Controller Handle=0x%X\n",
drivers/message/fusion/mptsas.c
1443
mptsas_add_end_device(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info)
drivers/message/fusion/mptsas.c
145
ioc->name, le16_to_cpu(phy_data->ControllerDevHandle)));
drivers/message/fusion/mptsas.c
1452
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1453
"%s: exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
146
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Port=0x%X\n",
drivers/message/fusion/mptsas.c
1461
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1462
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
1469
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
147
ioc->name, phy_data->Port));
drivers/message/fusion/mptsas.c
1470
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
148
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Port Flags=0x%X\n",
drivers/message/fusion/mptsas.c
1486
" phy %d, sas_addr 0x%llx\n", ioc->name, ds,
drivers/message/fusion/mptsas.c
149
ioc->name, phy_data->PortFlags));
drivers/message/fusion/mptsas.c
1494
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1495
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
150
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "PHY Flags=0x%X\n",
drivers/message/fusion/mptsas.c
1502
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1503
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
1508
mptsas_set_rphy(ioc, phy_info, rphy);
drivers/message/fusion/mptsas.c
151
ioc->name, phy_data->PhyFlags));
drivers/message/fusion/mptsas.c
1519
mptsas_del_end_device(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info)
drivers/message/fusion/mptsas.c
152
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Negotiated Link Rate=0x%X\n",
drivers/message/fusion/mptsas.c
153
ioc->name, phy_data->NegotiatedLinkRate));
drivers/message/fusion/mptsas.c
1537
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1538
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
154
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1544
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1545
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
155
"Controller PHY Device Info=0x%X\n", ioc->name,
drivers/message/fusion/mptsas.c
1568
"sas_addr 0x%llx\n", ioc->name, ds, phy_info->attached.channel,
drivers/message/fusion/mptsas.c
157
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "DiscoveryStatus=0x%X\n\n",
drivers/message/fusion/mptsas.c
1574
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
1575
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
158
ioc->name, le32_to_cpu(phy_data->DiscoveryStatus)));
drivers/message/fusion/mptsas.c
1589
ioc->name, phy_info_parent->phy_id,
drivers/message/fusion/mptsas.c
1595
"delete port %d, sas_addr (0x%llx)\n", ioc->name,
drivers/message/fusion/mptsas.c
1598
mptsas_set_port(ioc, phy_info, NULL);
drivers/message/fusion/mptsas.c
1599
mptsas_port_delete(ioc, phy_info->port_details);
drivers/message/fusion/mptsas.c
1603
mptsas_refreshing_device_handles(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
161
static void mptsas_print_phy_pg0(MPT_ADAPTER *ioc, SasPhyPage0_t *pg0)
drivers/message/fusion/mptsas.c
1610
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
1617
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
1632
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
1648
MPT_ADAPTER *ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
1652
if (ioc->in_rescan) {
drivers/message/fusion/mptsas.c
1653
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1655
ioc->name, __func__));
drivers/message/fusion/mptsas.c
1658
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: rescan after "
drivers/message/fusion/mptsas.c
1659
"reset\n", ioc->name, __func__));
drivers/message/fusion/mptsas.c
1660
ioc->in_rescan = 1;
drivers/message/fusion/mptsas.c
1661
mptsas_not_responding_devices(ioc);
drivers/message/fusion/mptsas.c
1662
mptsas_scan_sas_topology(ioc);
drivers/message/fusion/mptsas.c
1663
ioc->in_rescan = 0;
drivers/message/fusion/mptsas.c
1664
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
1665
mptsas_fw_event_on(ioc);
drivers/message/fusion/mptsas.c
167
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1670
if (ioc->fw_events_off) {
drivers/message/fusion/mptsas.c
1671
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
1675
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: fw_event=(0x%p), "
drivers/message/fusion/mptsas.c
1676
"event = (0x%02x)\n", ioc->name, __func__, fw_event,
drivers/message/fusion/mptsas.c
168
"---- SAS PHY PAGE 0 ------------\n", ioc->name));
drivers/message/fusion/mptsas.c
169
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1690
mptbase_sas_persist_operation(ioc,
drivers/message/fusion/mptsas.c
1692
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
170
"Attached Device Handle=0x%X\n", ioc->name,
drivers/message/fusion/mptsas.c
1716
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptsas.c
172
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SAS Address=0x%llX\n",
drivers/message/fusion/mptsas.c
1729
mptsas_add_device_component_starget_ir(ioc, scsi_target(sdev));
drivers/message/fusion/mptsas.c
173
ioc->name, (unsigned long long)le64_to_cpu(sas_address)));
drivers/message/fusion/mptsas.c
1735
mptsas_add_device_component_starget(ioc, scsi_target(sdev));
drivers/message/fusion/mptsas.c
174
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
175
"Attached PHY Identifier=0x%X\n", ioc->name,
drivers/message/fusion/mptsas.c
1751
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptsas.c
1758
vtarget->ioc_id = ioc->id;
drivers/message/fusion/mptsas.c
1767
if (!ioc->raid_data.pIocPg2) {
drivers/message/fusion/mptsas.c
177
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Attached Device Info=0x%X\n",
drivers/message/fusion/mptsas.c
1771
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
drivers/message/fusion/mptsas.c
1772
if (id == ioc->raid_data.pIocPg2->
drivers/message/fusion/mptsas.c
1774
channel = ioc->raid_data.pIocPg2->
drivers/message/fusion/mptsas.c
178
ioc->name, le32_to_cpu(pg0->AttachedDeviceInfo)));
drivers/message/fusion/mptsas.c
1783
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
1784
list_for_each_entry(p, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
179
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Programmed Link Rate=0x%X\n",
drivers/message/fusion/mptsas.c
1796
if (mptscsih_is_phys_disk(ioc, channel, id)) {
drivers/message/fusion/mptsas.c
1797
id = mptscsih_raid_id_to_num(ioc,
drivers/message/fusion/mptsas.c
180
ioc->name, pg0->ProgrammedLinkRate));
drivers/message/fusion/mptsas.c
1803
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
1807
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
181
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Change Count=0x%X\n",
drivers/message/fusion/mptsas.c
182
ioc->name, pg0->ChangeCount));
drivers/message/fusion/mptsas.c
1827
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptsas.c
183
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "PHY Info=0x%X\n\n",
drivers/message/fusion/mptsas.c
1835
mptsas_del_device_component_by_os(ioc, starget->channel,
drivers/message/fusion/mptsas.c
184
ioc->name, le32_to_cpu(pg0->PhyInfo)));
drivers/message/fusion/mptsas.c
1843
list_for_each_entry(p, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
1851
"sas_addr 0x%llx\n", ioc->name,
drivers/message/fusion/mptsas.c
187
static void mptsas_print_phy_pg1(MPT_ADAPTER *ioc, SasPhyPage1_t *pg1)
drivers/message/fusion/mptsas.c
1878
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptsas.c
1883
ioc->name, sizeof(VirtDevice));
drivers/message/fusion/mptsas.c
189
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1893
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
1894
list_for_each_entry(p, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
190
"---- SAS PHY PAGE 1 ------------\n", ioc->name));
drivers/message/fusion/mptsas.c
1903
if (mptscsih_is_phys_disk(ioc,
drivers/message/fusion/mptsas.c
1907
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
191
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Invalid Dword Count=0x%x\n",
drivers/message/fusion/mptsas.c
1911
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
192
ioc->name, pg1->InvalidDwordCount));
drivers/message/fusion/mptsas.c
1926
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
193
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1936
ioc = hd->ioc;
drivers/message/fusion/mptsas.c
1938
if (ioc->sas_discovery_quiesce_io)
drivers/message/fusion/mptsas.c
194
"Running Disparity Error Count=0x%x\n", ioc->name,
drivers/message/fusion/mptsas.c
1941
if (ioc->debug_level & MPT_DEBUG_SCSI)
drivers/message/fusion/mptsas.c
1957
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
196
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
1968
ioc = hd->ioc;
drivers/message/fusion/mptsas.c
1969
if (ioc->bus_type != SAS) {
drivers/message/fusion/mptsas.c
197
"Loss Dword Synch Count=0x%x\n", ioc->name,
drivers/message/fusion/mptsas.c
1978
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptsas.c
1979
dtmprintk(ioc, printk(MYIOC_s_WARN_FMT ": %s: ioc is in reset,"
drivers/message/fusion/mptsas.c
1981
ioc->name, __func__, sc));
drivers/message/fusion/mptsas.c
1987
dtmprintk(ioc, printk(MYIOC_s_WARN_FMT ": %s: target removed "
drivers/message/fusion/mptsas.c
1989
ioc->name, __func__, sc));
drivers/message/fusion/mptsas.c
199
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
200
"PHY Reset Problem Count=0x%x\n\n", ioc->name,
drivers/message/fusion/mptsas.c
2029
MPT_ADAPTER *ioc = phy_to_ioc(phy);
drivers/message/fusion/mptsas.c
204
static void mptsas_print_device_pg0(MPT_ADAPTER *ioc, SasDevicePage0_t *pg0)
drivers/message/fusion/mptsas.c
2055
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
2061
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
2069
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
2073
mptsas_print_phy_pg1(ioc, buffer);
drivers/message/fusion/mptsas.c
2084
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
2089
static int mptsas_mgmt_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req,
drivers/message/fusion/mptsas.c
2092
ioc->sas_mgmt.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptsas.c
2094
ioc->sas_mgmt.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptsas.c
2095
memcpy(ioc->sas_mgmt.reply, reply,
drivers/message/fusion/mptsas.c
2096
min(ioc->reply_sz, 4 * reply->u.reply.MsgLength));
drivers/message/fusion/mptsas.c
2099
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptsas.c
210
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
2100
ioc->sas_mgmt.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptsas.c
2101
complete(&ioc->sas_mgmt.done);
drivers/message/fusion/mptsas.c
2109
MPT_ADAPTER *ioc = phy_to_ioc(phy);
drivers/message/fusion/mptsas.c
211
"---- SAS DEVICE PAGE 0 ---------\n", ioc->name));
drivers/message/fusion/mptsas.c
212
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Handle=0x%X\n",
drivers/message/fusion/mptsas.c
2125
if (mutex_lock_interruptible(&ioc->sas_mgmt.mutex))
drivers/message/fusion/mptsas.c
2128
mf = mpt_get_msg_frame(mptsasMgmtCtx, ioc);
drivers/message/fusion/mptsas.c
213
ioc->name, le16_to_cpu(pg0->DevHandle)));
drivers/message/fusion/mptsas.c
214
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Parent Handle=0x%X\n",
drivers/message/fusion/mptsas.c
2143
INITIALIZE_MGMT_STATUS(ioc->sas_mgmt.status)
drivers/message/fusion/mptsas.c
2144
mpt_put_msg_frame(mptsasMgmtCtx, ioc, mf);
drivers/message/fusion/mptsas.c
2146
timeleft = wait_for_completion_timeout(&ioc->sas_mgmt.done,
drivers/message/fusion/mptsas.c
2148
if (!(ioc->sas_mgmt.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptsas.c
215
ioc->name, le16_to_cpu(pg0->ParentDevHandle)));
drivers/message/fusion/mptsas.c
2150
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptsas.c
2151
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptsas.c
2154
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptsas.c
2159
if ((ioc->sas_mgmt.status &
drivers/message/fusion/mptsas.c
216
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Enclosure Handle=0x%X\n",
drivers/message/fusion/mptsas.c
2166
reply = (SasIoUnitControlReply_t *)ioc->sas_mgmt.reply;
drivers/message/fusion/mptsas.c
2169
ioc->name, __func__, reply->IOCStatus, reply->IOCLogInfo);
drivers/message/fusion/mptsas.c
217
ioc->name, le16_to_cpu(pg0->EnclosureHandle)));
drivers/message/fusion/mptsas.c
2177
CLEAR_MGMT_STATUS(ioc->sas_mgmt.status)
drivers/message/fusion/mptsas.c
2178
mutex_unlock(&ioc->sas_mgmt.mutex);
drivers/message/fusion/mptsas.c
218
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Slot=0x%X\n",
drivers/message/fusion/mptsas.c
2186
MPT_ADAPTER *ioc = rphy_to_ioc(rphy);
drivers/message/fusion/mptsas.c
219
ioc->name, le16_to_cpu(pg0->Slot)));
drivers/message/fusion/mptsas.c
2192
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
2193
list_for_each_entry(p, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
220
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SAS Address=0x%llX\n",
drivers/message/fusion/mptsas.c
2203
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
2207
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
2209
error = mptsas_sas_enclosure_pg0(ioc, &enclosure_info,
drivers/message/fusion/mptsas.c
221
ioc->name, (unsigned long long)le64_to_cpu(sas_address)));
drivers/message/fusion/mptsas.c
222
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Target ID=0x%X\n",
drivers/message/fusion/mptsas.c
2220
MPT_ADAPTER *ioc = rphy_to_ioc(rphy);
drivers/message/fusion/mptsas.c
2224
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
2225
list_for_each_entry(p, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
223
ioc->name, pg0->TargetID));
drivers/message/fusion/mptsas.c
2236
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
224
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Bus=0x%X\n",
drivers/message/fusion/mptsas.c
2243
MPT_ADAPTER *ioc = ((MPT_SCSI_HOST *) shost->hostdata)->ioc;
drivers/message/fusion/mptsas.c
225
ioc->name, pg0->Bus));
drivers/message/fusion/mptsas.c
2257
ioc->name, __func__, job->request_payload.payload_len,
drivers/message/fusion/mptsas.c
226
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Parent Phy Num=0x%X\n",
drivers/message/fusion/mptsas.c
2262
ret = mutex_lock_interruptible(&ioc->sas_mgmt.mutex);
drivers/message/fusion/mptsas.c
2266
mf = mpt_get_msg_frame(mptsasMgmtCtx, ioc);
drivers/message/fusion/mptsas.c
227
ioc->name, pg0->PhyNum));
drivers/message/fusion/mptsas.c
228
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Access Status=0x%X\n",
drivers/message/fusion/mptsas.c
2284
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
2285
port_info = ioc->hba_port_info;
drivers/message/fusion/mptsas.c
2289
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
229
ioc->name, le16_to_cpu(pg0->AccessStatus)));
drivers/message/fusion/mptsas.c
230
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Device Info=0x%X\n",
drivers/message/fusion/mptsas.c
2303
if (!dma_map_sg(&ioc->pcidev->dev, job->request_payload.sg_list,
drivers/message/fusion/mptsas.c
2308
ioc->add_sge(psge, flagsLength,
drivers/message/fusion/mptsas.c
231
ioc->name, le32_to_cpu(pg0->DeviceInfo)));
drivers/message/fusion/mptsas.c
2310
psge += ioc->SGE_size;
drivers/message/fusion/mptsas.c
232
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Flags=0x%X\n",
drivers/message/fusion/mptsas.c
2320
if (!dma_map_sg(&ioc->pcidev->dev, job->reply_payload.sg_list,
drivers/message/fusion/mptsas.c
2324
ioc->add_sge(psge, flagsLength,
drivers/message/fusion/mptsas.c
2327
INITIALIZE_MGMT_STATUS(ioc->sas_mgmt.status)
drivers/message/fusion/mptsas.c
2328
mpt_put_msg_frame(mptsasMgmtCtx, ioc, mf);
drivers/message/fusion/mptsas.c
233
ioc->name, le16_to_cpu(pg0->Flags)));
drivers/message/fusion/mptsas.c
2330
timeleft = wait_for_completion_timeout(&ioc->sas_mgmt.done, 10 * HZ);
drivers/message/fusion/mptsas.c
2331
if (!(ioc->sas_mgmt.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptsas.c
2333
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptsas.c
2335
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptsas.c
2338
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptsas.c
234
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Physical Port=0x%X\n\n",
drivers/message/fusion/mptsas.c
2343
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_RF_VALID) {
drivers/message/fusion/mptsas.c
2346
smprep = (SmpPassthroughReply_t *)ioc->sas_mgmt.reply;
drivers/message/fusion/mptsas.c
235
ioc->name, pg0->PhysicalPort));
drivers/message/fusion/mptsas.c
2353
ioc->name, __func__);
drivers/message/fusion/mptsas.c
2358
dma_unmap_sg(&ioc->pcidev->dev, job->reply_payload.sg_list, 1,
drivers/message/fusion/mptsas.c
2361
dma_unmap_sg(&ioc->pcidev->dev, job->request_payload.sg_list, 1,
drivers/message/fusion/mptsas.c
2365
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptsas.c
2367
CLEAR_MGMT_STATUS(ioc->sas_mgmt.status)
drivers/message/fusion/mptsas.c
2368
mutex_unlock(&ioc->sas_mgmt.mutex);
drivers/message/fusion/mptsas.c
238
static void mptsas_print_expander_pg1(MPT_ADAPTER *ioc, SasExpanderPage1_t *pg1)
drivers/message/fusion/mptsas.c
2384
mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
drivers/message/fusion/mptsas.c
240
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
2407
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
241
"---- SAS EXPANDER PAGE 1 ------------\n", ioc->name));
drivers/message/fusion/mptsas.c
2415
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
242
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Physical Port=0x%X\n",
drivers/message/fusion/mptsas.c
2425
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
243
ioc->name, pg1->PhysicalPort));
drivers/message/fusion/mptsas.c
2437
ioc->nvdata_version_persistent =
drivers/message/fusion/mptsas.c
2439
ioc->nvdata_version_default =
drivers/message/fusion/mptsas.c
244
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "PHY Identifier=0x%X\n",
drivers/message/fusion/mptsas.c
2443
mptsas_print_phy_data(ioc, &buffer->PhyData[i]);
drivers/message/fusion/mptsas.c
245
ioc->name, pg1->PhyIdentifier));
drivers/message/fusion/mptsas.c
2455
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
246
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Negotiated Link Rate=0x%X\n",
drivers/message/fusion/mptsas.c
2462
mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
247
ioc->name, pg1->NegotiatedLinkRate));
drivers/message/fusion/mptsas.c
248
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Programmed Link Rate=0x%X\n",
drivers/message/fusion/mptsas.c
2482
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
249
ioc->name, pg1->ProgrammedLinkRate));
drivers/message/fusion/mptsas.c
2490
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
250
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Hardware Link Rate=0x%X\n",
drivers/message/fusion/mptsas.c
2500
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
2504
ioc->io_missing_delay =
drivers/message/fusion/mptsas.c
2507
ioc->device_missing_delay = (device_missing_delay & MPI_SAS_IOUNIT1_REPORT_MISSING_UNIT_16) ?
drivers/message/fusion/mptsas.c
251
ioc->name, pg1->HwLinkRate));
drivers/message/fusion/mptsas.c
2512
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
2519
mptsas_sas_phy_pg0(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
drivers/message/fusion/mptsas.c
252
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Owner Device Handle=0x%X\n",
drivers/message/fusion/mptsas.c
253
ioc->name, le16_to_cpu(pg1->OwnerDevHandle)));
drivers/message/fusion/mptsas.c
254
dsasprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
2545
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
255
"Attached Device Handle=0x%X\n\n", ioc->name,
drivers/message/fusion/mptsas.c
2554
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
2564
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
2568
mptsas_print_phy_pg0(ioc, buffer);
drivers/message/fusion/mptsas.c
2576
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
2583
mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info,
drivers/message/fusion/mptsas.c
2609
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
261
mptsas_fw_event_off(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
2617
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
2627
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
2637
mptsas_print_device_pg0(ioc, buffer);
drivers/message/fusion/mptsas.c
265
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
2657
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
266
ioc->fw_events_off = 1;
drivers/message/fusion/mptsas.c
2664
mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
drivers/message/fusion/mptsas.c
267
ioc->sas_discovery_quiesce_io = 0;
drivers/message/fusion/mptsas.c
268
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
2691
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
2700
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
2710
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
274
mptsas_fw_event_on(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
2740
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
2747
mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
drivers/message/fusion/mptsas.c
2771
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
278
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
2780
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
drivers/message/fusion/mptsas.c
279
ioc->fw_events_off = 0;
drivers/message/fusion/mptsas.c
2790
error = mpt_config(ioc, &cfg);
drivers/message/fusion/mptsas.c
280
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
2801
mptsas_print_expander_pg1(ioc, buffer);
drivers/message/fusion/mptsas.c
2813
dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
drivers/message/fusion/mptsas.c
285
mptsas_add_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
drivers/message/fusion/mptsas.c
2858
mptsas_exp_repmanufacture_info(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
2875
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
2876
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptsas.c
2877
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
2879
__func__, ioc->name);
drivers/message/fusion/mptsas.c
2882
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
2884
ret = mutex_lock_interruptible(&ioc->sas_mgmt.mutex);
drivers/message/fusion/mptsas.c
2888
mf = mpt_get_msg_frame(mptsasMgmtCtx, ioc);
drivers/message/fusion/mptsas.c
2899
data_out = dma_alloc_coherent(&ioc->pcidev->dev, sz, &data_out_dma,
drivers/message/fusion/mptsas.c
290
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
291
list_add_tail(&fw_event->list, &ioc->fw_event_list);
drivers/message/fusion/mptsas.c
2929
ioc->add_sge(psge, flagsLength, data_out_dma);
drivers/message/fusion/mptsas.c
2930
psge += ioc->SGE_size;
drivers/message/fusion/mptsas.c
2938
ioc->add_sge(psge, flagsLength, data_out_dma +
drivers/message/fusion/mptsas.c
294
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: add (fw_event=0x%p)"
drivers/message/fusion/mptsas.c
2941
INITIALIZE_MGMT_STATUS(ioc->sas_mgmt.status)
drivers/message/fusion/mptsas.c
2942
mpt_put_msg_frame(mptsasMgmtCtx, ioc, mf);
drivers/message/fusion/mptsas.c
2944
timeleft = wait_for_completion_timeout(&ioc->sas_mgmt.done, 10 * HZ);
drivers/message/fusion/mptsas.c
2945
if (!(ioc->sas_mgmt.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptsas.c
2947
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptsas.c
2949
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptsas.c
295
"on cpuid %d\n", ioc->name, __func__,
drivers/message/fusion/mptsas.c
2952
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptsas.c
2958
if (ioc->sas_mgmt.status & MPT_MGMT_STATUS_RF_VALID) {
drivers/message/fusion/mptsas.c
2961
smprep = (SmpPassthroughReply_t *)ioc->sas_mgmt.reply;
drivers/message/fusion/mptsas.c
297
queue_delayed_work_on(smp_processor_id(), ioc->fw_event_q,
drivers/message/fusion/mptsas.c
2982
ioc->name, __func__);
drivers/message/fusion/mptsas.c
2987
dma_free_coherent(&ioc->pcidev->dev, sz, data_out,
drivers/message/fusion/mptsas.c
299
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
2991
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptsas.c
2993
CLEAR_MGMT_STATUS(ioc->sas_mgmt.status)
drivers/message/fusion/mptsas.c
2994
mutex_unlock(&ioc->sas_mgmt.mutex);
drivers/message/fusion/mptsas.c
304
mptsas_requeue_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
drivers/message/fusion/mptsas.c
3061
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
308
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
309
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: reschedule task "
drivers/message/fusion/mptsas.c
310
"(fw_event=0x%p)on cpuid %d\n", ioc->name, __func__,
drivers/message/fusion/mptsas.c
313
queue_delayed_work_on(smp_processor_id(), ioc->fw_event_q,
drivers/message/fusion/mptsas.c
315
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
318
static void __mptsas_free_fw_event(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
3182
ioc = phy_to_ioc(phy_info->phy);
drivers/message/fusion/mptsas.c
3194
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
3195
"%s: exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
3199
mptsas_set_port(ioc, phy_info, port);
drivers/message/fusion/mptsas.c
3200
devtprintk(ioc, dev_printk(KERN_DEBUG, &port->dev,
drivers/message/fusion/mptsas.c
3202
ioc->name, port->port_identifier,
drivers/message/fusion/mptsas.c
3206
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
3208
ioc->name, phy_info->phy_id));
drivers/message/fusion/mptsas.c
321
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: kfree (fw_event=0x%p)\n",
drivers/message/fusion/mptsas.c
3211
devtprintk(ioc, dev_printk(KERN_DEBUG, &phy_info->phy->dev,
drivers/message/fusion/mptsas.c
3212
MYIOC_s_FMT "add phy %d, phy-obj (0x%p)\n", ioc->name,
drivers/message/fusion/mptsas.c
322
ioc->name, __func__, fw_event));
drivers/message/fusion/mptsas.c
3237
port_info = ioc->hba_port_info;
drivers/message/fusion/mptsas.c
3268
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
3269
"%s: exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
3277
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
3278
"%s: exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
3283
mptsas_set_rphy(ioc, phy_info, rphy);
drivers/message/fusion/mptsas.c
3286
mptsas_exp_repmanufacture_info(ioc,
drivers/message/fusion/mptsas.c
329
mptsas_free_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event)
drivers/message/fusion/mptsas.c
3293
vtarget = mptsas_find_vtarget(ioc,
drivers/message/fusion/mptsas.c
3306
mptsas_probe_hba_phys(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
3315
error = mptsas_sas_io_unit_pg0(ioc, hba);
drivers/message/fusion/mptsas.c
3319
mptsas_sas_io_unit_pg1(ioc);
drivers/message/fusion/mptsas.c
3320
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3321
port_info = ioc->hba_port_info;
drivers/message/fusion/mptsas.c
3323
ioc->hba_port_info = port_info = hba;
drivers/message/fusion/mptsas.c
3324
ioc->hba_port_num_phy = port_info->num_phys;
drivers/message/fusion/mptsas.c
3325
list_add_tail(&port_info->list, &ioc->sas_topology);
drivers/message/fusion/mptsas.c
333
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
3339
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3341
ioc->num_ports = port_info->num_phys;
drivers/message/fusion/mptsas.c
3344
mptsas_sas_phy_pg0(ioc, &port_info->phy_info[i],
drivers/message/fusion/mptsas.c
3349
mptsas_sas_device_pg0(ioc, &port_info->phy_info[i].identify,
drivers/message/fusion/mptsas.c
3353
if (!ioc->hba_port_sas_addr)
drivers/message/fusion/mptsas.c
3354
ioc->hba_port_sas_addr =
drivers/message/fusion/mptsas.c
3359
mptsas_sas_device_pg0(ioc,
drivers/message/fusion/mptsas.c
336
__mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
3366
mptsas_setup_wide_ports(ioc, port_info);
drivers/message/fusion/mptsas.c
3368
for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++)
drivers/message/fusion/mptsas.c
3369
mptsas_probe_one_phy(&ioc->sh->shost_gendev,
drivers/message/fusion/mptsas.c
337
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
3370
&port_info->phy_info[i], ioc->sas_index, 1);
drivers/message/fusion/mptsas.c
3381
mptsas_expander_refresh(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
drivers/message/fusion/mptsas.c
3393
mptsas_sas_expander_pg1(ioc, &port_info->phy_info[i],
drivers/message/fusion/mptsas.c
3397
mptsas_sas_device_pg0(ioc,
drivers/message/fusion/mptsas.c
3406
mptsas_sas_device_pg0(ioc,
drivers/message/fusion/mptsas.c
3416
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3417
parent = mptsas_find_portinfo_by_handle(ioc,
drivers/message/fusion/mptsas.c
3420
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
343
mptsas_cleanup_fw_event_q(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
3430
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3432
mptsas_setup_wide_ports(ioc, port_info);
drivers/message/fusion/mptsas.c
3433
for (i = 0; i < port_info->num_phys; i++, ioc->sas_index++)
drivers/message/fusion/mptsas.c
3435
ioc->sas_index, 0);
drivers/message/fusion/mptsas.c
3439
mptsas_expander_event_add(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
3464
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3465
list_add_tail(&port_info->list, &ioc->sas_topology);
drivers/message/fusion/mptsas.c
3466
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3469
"sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
drivers/message/fusion/mptsas.c
347
MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptsas.c
3472
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
3482
mptsas_delete_expander_siblings(MPT_ADAPTER *ioc, struct mptsas_portinfo
drivers/message/fusion/mptsas.c
3496
mptsas_del_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
3508
port_info = mptsas_find_portinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
3518
mptsas_expander_delete(ioc, port_info, 1);
drivers/message/fusion/mptsas.c
3532
static void mptsas_expander_delete(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
354
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
3548
mptsas_sas_expander_pg0(ioc, &buffer,
drivers/message/fusion/mptsas.c
356
ioc->name, __func__,
drivers/message/fusion/mptsas.c
3566
parent = mptsas_find_portinfo_by_handle(ioc,
drivers/message/fusion/mptsas.c
3568
mptsas_delete_expander_siblings(ioc, parent, port_info);
drivers/message/fusion/mptsas.c
3589
MYIOC_s_FMT "delete phy %d, phy-obj (0x%p)\n", ioc->name,
drivers/message/fusion/mptsas.c
3596
ioc->name, port->port_identifier,
drivers/message/fusion/mptsas.c
3599
mptsas_port_delete(ioc, port_details);
drivers/message/fusion/mptsas.c
3604
"sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
drivers/message/fusion/mptsas.c
3627
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
363
if (list_empty(&ioc->fw_event_list) || !ioc->fw_event_q)
drivers/message/fusion/mptsas.c
3633
ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
3638
port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address);
drivers/message/fusion/mptsas.c
3651
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
3653
mptsas_expander_event_add(ioc, expander_data);
drivers/message/fusion/mptsas.c
3656
mptsas_expander_delete(ioc, port_info, 0);
drivers/message/fusion/mptsas.c
3658
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
366
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
3669
mptsas_expander_add(MPT_ADAPTER *ioc, u16 handle)
drivers/message/fusion/mptsas.c
3674
if ((mptsas_sas_expander_pg0(ioc, &buffer,
drivers/message/fusion/mptsas.c
368
while (!list_empty(&ioc->fw_event_list)) {
drivers/message/fusion/mptsas.c
3681
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
3682
"%s: exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
3690
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3691
list_add_tail(&port_info->list, &ioc->sas_topology);
drivers/message/fusion/mptsas.c
3692
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3694
"sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
drivers/message/fusion/mptsas.c
3696
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
3703
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
371
fw_event = list_first_entry(&ioc->fw_event_list,
drivers/message/fusion/mptsas.c
3711
ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
3719
port_info = mptsas_find_portinfo_by_sas_address(ioc, sas_address);
drivers/message/fusion/mptsas.c
3731
if (ioc->old_sas_discovery_protocal) {
drivers/message/fusion/mptsas.c
3732
port_info = mptsas_expander_add(ioc,
drivers/message/fusion/mptsas.c
374
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
3740
if (port_info == ioc->hba_port_info)
drivers/message/fusion/mptsas.c
3741
mptsas_probe_hba_phys(ioc);
drivers/message/fusion/mptsas.c
3743
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
3755
if (ioc->device_missing_delay &&
drivers/message/fusion/mptsas.c
3762
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
3764
ioc->name, phy_info->attached.id,
drivers/message/fusion/mptsas.c
3767
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptsas.c
3779
devtprintk(ioc,
drivers/message/fusion/mptsas.c
378
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
3782
"%d\n", ioc->name,
drivers/message/fusion/mptsas.c
3790
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
3794
mptsas_not_responding_devices(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
3806
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
3808
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
3809
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptsas.c
3810
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
3811
"%s: exiting due to a parallel reset \n", ioc->name,
drivers/message/fusion/mptsas.c
3813
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
3816
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
3819
mutex_lock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
3821
list_for_each_entry(sas_info, &ioc->sas_device_info_list, list) {
drivers/message/fusion/mptsas.c
3828
retval = mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
383
__mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
3837
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
3838
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptsas.c
3839
dfailprintk(ioc,
drivers/message/fusion/mptsas.c
3842
ioc->name, __func__));
drivers/message/fusion/mptsas.c
3844
(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptsas.c
3845
mutex_unlock(&ioc->
drivers/message/fusion/mptsas.c
3849
spin_unlock_irqrestore(&ioc->taskmgmt_lock,
drivers/message/fusion/mptsas.c
385
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/message/fusion/mptsas.c
3858
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
3861
ioc->name, __func__,
drivers/message/fusion/mptsas.c
3867
vtarget = mptsas_find_vtarget(ioc,
drivers/message/fusion/mptsas.c
3873
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
3876
mptsas_del_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
3879
mptsas_volume_delete(ioc, sas_info->fw.id);
drivers/message/fusion/mptsas.c
3881
mutex_unlock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
3884
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3886
list_for_each_entry(port_info, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
3893
while (!mptsas_sas_expander_pg0(ioc, &buffer,
drivers/message/fusion/mptsas.c
3907
mptsas_expander_delete(ioc, port_info, 0);
drivers/message/fusion/mptsas.c
3911
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
392
return ((MPT_SCSI_HOST *)shost->hostdata)->ioc;
drivers/message/fusion/mptsas.c
3920
mptsas_probe_expanders(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
3927
while (!mptsas_sas_expander_pg0(ioc, &buffer,
drivers/message/fusion/mptsas.c
3932
port_info = mptsas_find_portinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
3942
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
3949
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
3950
"%s: exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
3958
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3959
list_add_tail(&port_info->list, &ioc->sas_topology);
drivers/message/fusion/mptsas.c
3960
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
3962
"sas_addr (0x%llx)\n", ioc->name, port_info->num_phys,
drivers/message/fusion/mptsas.c
3964
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
3969
mptsas_probe_devices(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
3976
while (!(mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
398
return ((MPT_SCSI_HOST *)shost->hostdata)->ioc;
drivers/message/fusion/mptsas.c
3994
phy_info = mptsas_refreshing_device_handles(ioc, &sas_device);
drivers/message/fusion/mptsas.c
4001
mptsas_add_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
4012
mptsas_scan_sas_topology(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
4017
mptsas_probe_hba_phys(ioc);
drivers/message/fusion/mptsas.c
4018
mptsas_probe_expanders(ioc);
drivers/message/fusion/mptsas.c
4019
mptsas_probe_devices(ioc);
drivers/message/fusion/mptsas.c
4024
if (!ioc->ir_firmware || !ioc->raid_data.pIocPg2 ||
drivers/message/fusion/mptsas.c
4025
!ioc->raid_data.pIocPg2->NumActiveVolumes)
drivers/message/fusion/mptsas.c
4027
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
drivers/message/fusion/mptsas.c
4028
sdev = scsi_device_lookup(ioc->sh, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4029
ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID, 0);
drivers/message/fusion/mptsas.c
4035
"id %d\n", ioc->name, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4036
ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID);
drivers/message/fusion/mptsas.c
4037
scsi_add_device(ioc->sh, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4038
ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID, 0);
drivers/message/fusion/mptsas.c
4046
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
4057
ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
4064
mutex_lock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
4065
if (mptscsih_is_phys_disk(ioc, fw_channel, fw_id)) {
drivers/message/fusion/mptsas.c
4066
list_for_each_entry(sas_info, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
407
mptsas_find_portinfo_by_handle(MPT_ADAPTER *ioc, u16 handle)
drivers/message/fusion/mptsas.c
4080
list_for_each_entry(sas_info, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
4097
mutex_unlock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
4100
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptsas.c
412
list_for_each_entry(port_info, &ioc->sas_topology, list)
drivers/message/fusion/mptsas.c
4127
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4132
mptsas_find_phyinfo_by_sas_address(MPT_ADAPTER *ioc, u64 sas_address)
drivers/message/fusion/mptsas.c
4138
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
4139
list_for_each_entry(port_info, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
4151
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
4165
mptsas_find_phyinfo_by_phys_disk_num(MPT_ADAPTER *ioc, u8 phys_disk_num,
drivers/message/fusion/mptsas.c
4176
if (!ioc->raid_data.pIocPg3)
drivers/message/fusion/mptsas.c
4179
num_paths = mpt_raid_phys_disk_get_num_paths(ioc, phys_disk_num);
drivers/message/fusion/mptsas.c
4186
mpt_raid_phys_disk_pg1(ioc, phys_disk_num, phys_disk);
drivers/message/fusion/mptsas.c
4195
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
4210
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
4211
list_for_each_entry(port_info, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
4226
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
4245
mptsas_adding_inactive_raid_components(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptsas.c
4264
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptsas.c
4270
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptsas.c
4279
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptsas.c
4291
if (mpt_raid_phys_disk_pg0(ioc,
drivers/message/fusion/mptsas.c
4295
if (mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
4310
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
4312
mptsas_add_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
4317
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptsas.c
4324
mptsas_hotplug_work(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
drivers/message/fusion/mptsas.c
433
mptsas_find_portinfo_by_sas_address(MPT_ADAPTER *ioc, u64 sas_address)
drivers/message/fusion/mptsas.c
4338
if (!ioc->raid_data.pIocPg2)
drivers/message/fusion/mptsas.c
4341
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
drivers/message/fusion/mptsas.c
4342
if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID ==
drivers/message/fusion/mptsas.c
4346
"volume_id\n", ioc->name);
drivers/message/fusion/mptsas.c
4347
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4351
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4356
mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
4372
phy_info = mptsas_refreshing_device_handles(ioc, &sas_device);
drivers/message/fusion/mptsas.c
4375
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
4377
"parent handle of device %x\n", ioc->name,
drivers/message/fusion/mptsas.c
4379
port_info = mptsas_find_portinfo_by_handle(ioc,
drivers/message/fusion/mptsas.c
438
if (sas_address >= ioc->hba_port_sas_addr &&
drivers/message/fusion/mptsas.c
4382
if (port_info == ioc->hba_port_info)
drivers/message/fusion/mptsas.c
4383
mptsas_probe_hba_phys(ioc);
drivers/message/fusion/mptsas.c
4385
mptsas_expander_refresh(ioc, port_info);
drivers/message/fusion/mptsas.c
4387
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4389
ioc->name, __func__, __LINE__));
drivers/message/fusion/mptsas.c
439
sas_address < (ioc->hba_port_sas_addr +
drivers/message/fusion/mptsas.c
4393
(ioc, &sas_device);
drivers/message/fusion/mptsas.c
4397
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4399
ioc->name, __func__, __LINE__));
drivers/message/fusion/mptsas.c
440
ioc->hba_port_num_phy))
drivers/message/fusion/mptsas.c
4406
mptsas_add_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
441
return ioc->hba_port_info;
drivers/message/fusion/mptsas.c
4410
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
4412
mptsas_del_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
4417
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4420
ioc, hot_plug_info->phys_disk_num,
drivers/message/fusion/mptsas.c
4423
mptsas_del_end_device(ioc, phy_info);
drivers/message/fusion/mptsas.c
4428
if (mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
443
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
4432
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4433
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
444
list_for_each_entry(port_info, &ioc->sas_topology, list)
drivers/message/fusion/mptsas.c
4446
ioc, sas_device.sas_address);
drivers/message/fusion/mptsas.c
4449
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4450
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
4457
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4458
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
4465
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4466
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
4471
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4475
ioc->name, hot_plug_info->channel, hot_plug_info->id,
drivers/message/fusion/mptsas.c
4487
if (mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
4491
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4493
ioc->name, __func__,
drivers/message/fusion/mptsas.c
4505
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
4508
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4509
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
4516
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4517
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
452
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
4524
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4525
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
4531
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4532
"%s: fw_id=%d exit at line=%d\n", ioc->name,
drivers/message/fusion/mptsas.c
4537
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4541
ioc->name, hot_plug_info->channel, hot_plug_info->id,
drivers/message/fusion/mptsas.c
4549
mptsas_add_device_component_by_fw(ioc,
drivers/message/fusion/mptsas.c
4555
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4557
"id %d\n", ioc->name, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4559
scsi_add_device(ioc->sh, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4565
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4567
"id %d\n", ioc->name, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4575
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4576
mptsas_adding_inactive_raid_components(ioc,
drivers/message/fusion/mptsas.c
4584
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4590
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
4596
ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
4605
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4611
mptbase_sas_persist_operation(ioc,
drivers/message/fusion/mptsas.c
4613
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4634
mptsas_hotplug_work(ioc, fw_event, &hot_plug_info);
drivers/message/fusion/mptsas.c
4638
mptbase_sas_persist_operation(ioc,
drivers/message/fusion/mptsas.c
4640
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4648
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4656
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
4665
ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
4679
sdev = scsi_device_lookup(ioc->sh, MPTSAS_RAID_CHANNEL,
drivers/message/fusion/mptsas.c
4686
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Entering %s: "
drivers/message/fusion/mptsas.c
4687
"ReasonCode=%02x\n", ioc->name, __func__,
drivers/message/fusion/mptsas.c
4701
mpt_raid_phys_disk_pg0(ioc,
drivers/message/fusion/mptsas.c
4764
mptsas_hotplug_work(ioc, fw_event, &hot_plug_info);
drivers/message/fusion/mptsas.c
4766
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
478
mptsas_port_delete(MPT_ADAPTER *ioc, struct mptsas_portinfo_details * port_details)
drivers/message/fusion/mptsas.c
4784
mptsas_issue_tm(MPT_ADAPTER *ioc, u8 type, u8 channel, u8 id, u64 lun,
drivers/message/fusion/mptsas.c
4793
mf = mpt_get_msg_frame(mptsasDeviceResetCtx, ioc);
drivers/message/fusion/mptsas.c
4796
dtmprintk(ioc, printk(MYIOC_s_WARN_FMT "TaskMgmt request: no "
drivers/message/fusion/mptsas.c
4797
"msg frames!!\n", ioc->name));
drivers/message/fusion/mptsas.c
4801
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt request: mr = %p, "
drivers/message/fusion/mptsas.c
4803
"fw_id = %d, lun = %lld,\n\t task_context = 0x%x\n", ioc->name, mf,
drivers/message/fusion/mptsas.c
4820
INITIALIZE_MGMT_STATUS(ioc->taskmgmt_cmds.status)
drivers/message/fusion/mptsas.c
4821
CLEAR_MGMT_STATUS(ioc->internal_cmds.status)
drivers/message/fusion/mptsas.c
4823
mpt_put_msg_frame_hi_pri(mptsasDeviceResetCtx, ioc, mf);
drivers/message/fusion/mptsas.c
4826
timeleft = wait_for_completion_timeout(&ioc->taskmgmt_cmds.done,
drivers/message/fusion/mptsas.c
4828
if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptsas.c
4830
dtmprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
4831
"TaskMgmt request: TIMED OUT!(mr=%p)\n", ioc->name, mf));
drivers/message/fusion/mptsas.c
4832
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptsas.c
4833
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptsas.c
4839
if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
drivers/message/fusion/mptsas.c
4841
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
4842
"TaskMgmt request: failed with no reply\n", ioc->name));
drivers/message/fusion/mptsas.c
4847
CLEAR_MGMT_STATUS(ioc->taskmgmt_cmds.status)
drivers/message/fusion/mptsas.c
4860
MPT_ADAPTER *ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
4873
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
4874
"%s - enter\n", ioc->name, __func__));
drivers/message/fusion/mptsas.c
4876
mutex_lock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptsas.c
4877
if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0) {
drivers/message/fusion/mptsas.c
4878
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptsas.c
4879
mptsas_requeue_fw_event(ioc, fw_event, 1000);
drivers/message/fusion/mptsas.c
4886
mpt_findImVolumes(ioc);
drivers/message/fusion/mptsas.c
4887
pScsiTmReply = (SCSITaskMgmtReply_t *) ioc->taskmgmt_cmds.reply;
drivers/message/fusion/mptsas.c
4889
for (ii = 0; ii < ioc->req_depth; ii++) {
drivers/message/fusion/mptsas.c
4890
if (ioc->fw_events_off)
drivers/message/fusion/mptsas.c
4892
sc = mptscsih_get_scsi_lookup(ioc, ii);
drivers/message/fusion/mptsas.c
4895
mf = MPT_INDEX_2_MFPTR(ioc, ii);
drivers/message/fusion/mptsas.c
490
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: [%p]: num_phys=%02d "
drivers/message/fusion/mptsas.c
4909
if (mptsas_issue_tm(ioc, MPI_SCSITASKMGMT_TASKTYPE_QUERY_TASK,
drivers/message/fusion/mptsas.c
491
"bitmask=0x%016llX\n", ioc->name, __func__, port_details,
drivers/message/fusion/mptsas.c
4921
if (mptsas_issue_tm(ioc,
drivers/message/fusion/mptsas.c
4930
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
4932
ioc->name, __func__, query_count, termination_count));
drivers/message/fusion/mptsas.c
4934
ioc->broadcast_aen_busy = 0;
drivers/message/fusion/mptsas.c
4935
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptsas.c
4936
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptsas.c
4941
ioc->name, __func__, mpt_GetIocState(ioc, 0));
drivers/message/fusion/mptsas.c
4942
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptsas.c
4944
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4958
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
4964
ioc = fw_event->ioc;
drivers/message/fusion/mptsas.c
4968
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Entering %s: "
drivers/message/fusion/mptsas.c
4969
"ReasonCode=%02x\n", ioc->name, __func__, reasonCode));
drivers/message/fusion/mptsas.c
4984
mpt_raid_phys_disk_pg0(ioc,
drivers/message/fusion/mptsas.c
499
mptsas_set_rphy(ioc, phy_info, NULL);
drivers/message/fusion/mptsas.c
4990
mptsas_free_fw_event(ioc, fw_event);
drivers/message/fusion/mptsas.c
4993
mptsas_hotplug_work(ioc, fw_event, &hot_plug_info);
drivers/message/fusion/mptsas.c
4997
mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
drivers/message/fusion/mptsas.c
5004
if (ioc->bus_type != SAS)
drivers/message/fusion/mptsas.c
5008
if (ioc->fw_events_off)
drivers/message/fusion/mptsas.c
5020
if (ioc->broadcast_aen_busy)
drivers/message/fusion/mptsas.c
5022
ioc->broadcast_aen_busy = 1;
drivers/message/fusion/mptsas.c
5034
mptsas_target_reset_queue(ioc, sas_event_data);
drivers/message/fusion/mptsas.c
5039
ioc->device_missing_delay &&
drivers/message/fusion/mptsas.c
5047
vtarget = mptsas_find_vtarget(ioc, channel, id);
drivers/message/fusion/mptsas.c
5049
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
5052
"fw_id %d fw_channel %d\n", ioc->name,
drivers/message/fusion/mptsas.c
5056
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
5058
ioc->name));
drivers/message/fusion/mptsas.c
5060
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
5062
ioc->name));
drivers/message/fusion/mptsas.c
5077
if (ioc->old_sas_discovery_protocal)
drivers/message/fusion/mptsas.c
5082
ioc->device_missing_delay)
drivers/message/fusion/mptsas.c
5083
delay = HZ * ioc->device_missing_delay;
drivers/message/fusion/mptsas.c
5093
ioc->sas_discovery_quiesce_io = discovery_status ? 1 : 0;
drivers/message/fusion/mptsas.c
5094
if (ioc->old_sas_discovery_protocal && !discovery_status)
drivers/message/fusion/mptsas.c
5095
mptsas_queue_rescan(ioc);
drivers/message/fusion/mptsas.c
5112
printk(MYIOC_s_WARN_FMT "%s: failed at (line=%d)\n", ioc->name,
drivers/message/fusion/mptsas.c
5118
fw_event->ioc = ioc;
drivers/message/fusion/mptsas.c
5119
mptsas_add_fw_event(ioc, fw_event, delay);
drivers/message/fusion/mptsas.c
5125
static void mptsas_volume_delete(MPT_ADAPTER *ioc, u8 id)
drivers/message/fusion/mptsas.c
5130
sdev = scsi_device_lookup(ioc->sh, MPTSAS_RAID_CHANNEL, id, 0);
drivers/message/fusion/mptsas.c
5133
if (!ioc->raid_data.pIocPg2)
drivers/message/fusion/mptsas.c
5135
if (!ioc->raid_data.pIocPg2->NumActiveVolumes)
drivers/message/fusion/mptsas.c
5137
for (i = 0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++)
drivers/message/fusion/mptsas.c
5138
if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID == id)
drivers/message/fusion/mptsas.c
5142
"id %d\n", ioc->name, MPTSAS_RAID_CHANNEL, id);
drivers/message/fusion/mptsas.c
515
mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
drivers/message/fusion/mptsas.c
5153
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.c
5166
ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptsas.c
5167
mptsas_fw_event_off(ioc);
drivers/message/fusion/mptsas.c
5168
ioc->DoneCtx = mptsasDoneCtx;
drivers/message/fusion/mptsas.c
5169
ioc->TaskCtx = mptsasTaskCtx;
drivers/message/fusion/mptsas.c
5170
ioc->InternalCtx = mptsasInternalCtx;
drivers/message/fusion/mptsas.c
5171
ioc->schedule_target_reset = &mptsas_schedule_target_reset;
drivers/message/fusion/mptsas.c
5172
ioc->schedule_dead_ioc_flush_running_cmds =
drivers/message/fusion/mptsas.c
5176
if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) {
drivers/message/fusion/mptsas.c
5179
ioc->name);
drivers/message/fusion/mptsas.c
5184
if (!ioc->active) {
drivers/message/fusion/mptsas.c
5186
ioc->name);
drivers/message/fusion/mptsas.c
519
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
drivers/message/fusion/mptsas.c
5194
for (ii = 0; ii < ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptsas.c
5195
if (ioc->pfacts[ii].ProtocolFlags &
drivers/message/fusion/mptsas.c
520
ioc->name, rphy));
drivers/message/fusion/mptsas.c
5203
"is NOT enabled!\n", ioc->name, ioc);
drivers/message/fusion/mptsas.c
5211
ioc->name);
drivers/message/fusion/mptsas.c
5216
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptsas.c
5220
ioc->sh = sh;
drivers/message/fusion/mptsas.c
5228
sh->can_queue = min_t(int, ioc->req_depth - 10, sh->can_queue);
drivers/message/fusion/mptsas.c
5235
sh->unique_id = ioc->id;
drivers/message/fusion/mptsas.c
5237
INIT_LIST_HEAD(&ioc->sas_topology);
drivers/message/fusion/mptsas.c
5238
mutex_init(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
5239
mutex_init(&ioc->sas_discovery_mutex);
drivers/message/fusion/mptsas.c
524
dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
drivers/message/fusion/mptsas.c
5240
mutex_init(&ioc->sas_mgmt.mutex);
drivers/message/fusion/mptsas.c
5241
init_completion(&ioc->sas_mgmt.done);
drivers/message/fusion/mptsas.c
525
&rphy->dev, MYIOC_s_FMT "add:", ioc->name));
drivers/message/fusion/mptsas.c
5252
scale = ioc->req_sz/ioc->SGE_size;
drivers/message/fusion/mptsas.c
5253
if (ioc->sg_addr_size == sizeof(u64)) {
drivers/message/fusion/mptsas.c
5255
(ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptsas.c
5256
(ioc->req_sz - 60) / ioc->SGE_size;
drivers/message/fusion/mptsas.c
5259
(ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptsas.c
526
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
drivers/message/fusion/mptsas.c
5260
(ioc->req_sz - 64) / ioc->SGE_size;
drivers/message/fusion/mptsas.c
5265
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
5267
ioc->name, numSGE, sh->sg_tablesize));
drivers/message/fusion/mptsas.c
527
ioc->name, rphy, rphy->dev.release));
drivers/message/fusion/mptsas.c
5276
"Range from 64 to 8192\n", ioc->name,
drivers/message/fusion/mptsas.c
5280
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
5282
ioc->name, mpt_loadtime_max_sectors, sh->max_sectors));
drivers/message/fusion/mptsas.c
5287
hd->ioc = ioc;
drivers/message/fusion/mptsas.c
5292
ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_ATOMIC);
drivers/message/fusion/mptsas.c
5293
if (!ioc->ScsiLookup) {
drivers/message/fusion/mptsas.c
5295
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptsas.c
5298
spin_lock_init(&ioc->scsi_lookup_lock);
drivers/message/fusion/mptsas.c
5300
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n",
drivers/message/fusion/mptsas.c
5301
ioc->name, ioc->ScsiLookup));
drivers/message/fusion/mptsas.c
5303
ioc->sas_data.ptClear = mpt_pt_clear;
drivers/message/fusion/mptsas.c
5307
INIT_LIST_HEAD(&ioc->sas_device_info_list);
drivers/message/fusion/mptsas.c
5308
mutex_init(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
5310
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptsas.c
5312
if (ioc->sas_data.ptClear==1) {
drivers/message/fusion/mptsas.c
5314
ioc, MPI_SAS_OP_CLEAR_ALL_PERSISTENT);
drivers/message/fusion/mptsas.c
5317
error = scsi_add_host(sh, &ioc->pcidev->dev);
drivers/message/fusion/mptsas.c
5319
dprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptsas.c
5320
"scsi_add_host failed\n", ioc->name));
drivers/message/fusion/mptsas.c
5325
if ((ioc->facts.HeaderVersion >> 8) < 0xE)
drivers/message/fusion/mptsas.c
5326
ioc->old_sas_discovery_protocal = 1;
drivers/message/fusion/mptsas.c
5327
mptsas_scan_sas_topology(ioc);
drivers/message/fusion/mptsas.c
5328
mptsas_fw_event_on(ioc);
drivers/message/fusion/mptsas.c
5340
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptsas.c
5342
mptsas_fw_event_off(ioc);
drivers/message/fusion/mptsas.c
5343
mptsas_cleanup_fw_event_q(ioc);
drivers/message/fusion/mptsas.c
5348
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptsas.c
5352
if (!ioc->sh) {
drivers/message/fusion/mptsas.c
5353
printk(MYIOC_s_INFO_FMT "IOC is in Target mode\n", ioc->name);
drivers/message/fusion/mptsas.c
5360
mptsas_del_device_components(ioc);
drivers/message/fusion/mptsas.c
5362
ioc->sas_discovery_ignore_events = 1;
drivers/message/fusion/mptsas.c
5363
sas_remove_host(ioc->sh);
drivers/message/fusion/mptsas.c
5365
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
5366
list_for_each_entry_safe(p, n, &ioc->sas_topology, list) {
drivers/message/fusion/mptsas.c
5369
mptsas_port_delete(ioc, p->phy_info[i].port_details);
drivers/message/fusion/mptsas.c
5374
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
5375
ioc->hba_port_info = NULL;
drivers/message/fusion/mptsas.c
541
mptsas_set_port(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_port *port)
drivers/message/fusion/mptsas.c
547
dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
drivers/message/fusion/mptsas.c
548
&port->dev, MYIOC_s_FMT "add:", ioc->name));
drivers/message/fusion/mptsas.c
549
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "port=%p release=%p\n",
drivers/message/fusion/mptsas.c
550
ioc->name, port, port->dev.release));
drivers/message/fusion/mptsas.c
583
mptsas_add_device_component(MPT_ADAPTER *ioc, u8 channel, u8 id,
drivers/message/fusion/mptsas.c
594
mutex_lock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
595
list_for_each_entry_safe(sas_info, next, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
621
list_add_tail(&sas_info->list, &ioc->sas_device_info_list);
drivers/message/fusion/mptsas.c
626
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptsas.c
636
mutex_unlock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
648
mptsas_add_device_component_by_fw(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptsas.c
654
rc = mptsas_sas_device_pg0(ioc, &sas_device,
drivers/message/fusion/mptsas.c
662
mptsas_sas_enclosure_pg0(ioc, &enclosure_info,
drivers/message/fusion/mptsas.c
667
mptsas_add_device_component(ioc, sas_device.channel,
drivers/message/fusion/mptsas.c
679
mptsas_add_device_component_starget_ir(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
699
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptsas.c
705
buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptsas.c
714
if (mpt_config(ioc, &cfg) != 0)
drivers/message/fusion/mptsas.c
725
if (mpt_raid_phys_disk_pg0(ioc,
drivers/message/fusion/mptsas.c
729
mptsas_add_device_component_by_fw(ioc, phys_disk.PhysDiskBus,
drivers/message/fusion/mptsas.c
732
mutex_lock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
733
list_for_each_entry(sas_info, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
742
mutex_unlock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
749
mutex_lock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
750
list_for_each_entry_safe(sas_info, next, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
766
list_add_tail(&sas_info->list, &ioc->sas_device_info_list);
drivers/message/fusion/mptsas.c
768
mutex_unlock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
772
dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
drivers/message/fusion/mptsas.c
783
mptsas_add_device_component_starget(MPT_ADAPTER *ioc,
drivers/message/fusion/mptsas.c
791
phy_info = mptsas_find_phyinfo_by_sas_address(ioc,
drivers/message/fusion/mptsas.c
797
mptsas_sas_enclosure_pg0(ioc, &enclosure_info,
drivers/message/fusion/mptsas.c
802
mptsas_add_device_component(ioc, phy_info->attached.channel,
drivers/message/fusion/mptsas.c
816
mptsas_del_device_component_by_os(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptsas.c
823
list_for_each_entry_safe(sas_info, next, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
836
mptsas_del_device_components(MPT_ADAPTER *ioc)
drivers/message/fusion/mptsas.c
840
mutex_lock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
841
list_for_each_entry_safe(sas_info, next, &ioc->sas_device_info_list,
drivers/message/fusion/mptsas.c
846
mutex_unlock(&ioc->sas_device_info_mutex);
drivers/message/fusion/mptsas.c
857
mptsas_setup_wide_ports(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
drivers/message/fusion/mptsas.c
864
mutex_lock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
879
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
881
ioc->name, __func__, port_details, i));
drivers/message/fusion/mptsas.c
886
devtprintk(ioc, dev_printk(KERN_DEBUG,
drivers/message/fusion/mptsas.c
888
"delete phy %d, phy-obj (0x%p)\n", ioc->name,
drivers/message/fusion/mptsas.c
901
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "phy_id=%d sas_address=0x%018llX\n",
drivers/message/fusion/mptsas.c
902
ioc->name, i, (unsigned long long)sas_address));
drivers/message/fusion/mptsas.c
919
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "\t\tForming port\n\t\t"
drivers/message/fusion/mptsas.c
921
ioc->name, i, (unsigned long long)sas_address));
drivers/message/fusion/mptsas.c
936
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
938
ioc->name, j, (unsigned long long)
drivers/message/fusion/mptsas.c
970
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptsas.c
972
"bitmask=0x%016llX\n", ioc->name, __func__,
drivers/message/fusion/mptsas.c
975
dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "\t\tport = %p rphy=%p\n",
drivers/message/fusion/mptsas.c
976
ioc->name, port_details->port, port_details->rphy));
drivers/message/fusion/mptsas.c
978
dsaswideprintk(ioc, printk("\n"));
drivers/message/fusion/mptsas.c
979
mutex_unlock(&ioc->sas_topology_mutex);
drivers/message/fusion/mptsas.c
992
mptsas_find_vtarget(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptsas.c
998
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptsas.h
111
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.h
119
MPT_ADAPTER *ioc;
drivers/message/fusion/mptsas.h
95
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
100
int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
drivers/message/fusion/mptscsih.c
1003
if (sc->result && (ioc->debug_level & MPT_DEBUG_REPLY))
drivers/message/fusion/mptscsih.c
1004
mptscsih_info_scsiio(ioc, sc, pScsiReply);
drivers/message/fusion/mptscsih.c
101
int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
drivers/message/fusion/mptscsih.c
1015
mptscsih_freeChainBuffers(ioc, req_idx);
drivers/message/fusion/mptscsih.c
1032
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1038
for (ii= 0; ii < ioc->req_depth; ii++) {
drivers/message/fusion/mptscsih.c
1039
sc = mptscsih_getclear_scsi_lookup(ioc, ii);
drivers/message/fusion/mptscsih.c
104
mptscsih_taskmgmt_response_code(MPT_ADAPTER *ioc, u8 response_code);
drivers/message/fusion/mptscsih.c
1042
mf = (SCSIIORequest_t *)MPT_INDEX_2_MFPTR(ioc, ii);
drivers/message/fusion/mptscsih.c
1047
mptscsih_freeChainBuffers(ioc, ii);
drivers/message/fusion/mptscsih.c
1048
mpt_free_msg_frame(ioc, (MPT_FRAME_HDR *)mf);
drivers/message/fusion/mptscsih.c
105
static int mptscsih_get_completion_code(MPT_ADAPTER *ioc,
drivers/message/fusion/mptscsih.c
1054
dtmprintk(ioc, sdev_printk(KERN_INFO, sc->device, MYIOC_s_FMT
drivers/message/fusion/mptscsih.c
1056
"idx=%x\n", ioc->name, channel, id, sc, mf, ii));
drivers/message/fusion/mptscsih.c
107
int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
drivers/message/fusion/mptscsih.c
1083
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1086
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
1087
for (ii = 0; ii < ioc->req_depth; ii++) {
drivers/message/fusion/mptscsih.c
1088
if ((sc = ioc->ScsiLookup[ii]) != NULL) {
drivers/message/fusion/mptscsih.c
1090
mf = (SCSIIORequest_t *)MPT_INDEX_2_MFPTR(ioc, ii);
drivers/message/fusion/mptscsih.c
1109
ioc->ScsiLookup[ii] = NULL;
drivers/message/fusion/mptscsih.c
1110
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
1111
mptscsih_freeChainBuffers(ioc, ii);
drivers/message/fusion/mptscsih.c
1112
mpt_free_msg_frame(ioc, (MPT_FRAME_HDR *)mf);
drivers/message/fusion/mptscsih.c
1116
dtmprintk(ioc, sdev_printk(KERN_INFO, sc->device,
drivers/message/fusion/mptscsih.c
1118
"fw_id %d, sc=%p, mf = %p, idx=%x\n", ioc->name,
drivers/message/fusion/mptscsih.c
112
mptscsih_taskmgmt_reply(MPT_ADAPTER *ioc, u8 type,
drivers/message/fusion/mptscsih.c
1122
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
1125
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
1148
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
1156
ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1158
dprintk(ioc, printk(MYIOC_s_WARN_FMT "Device (%d:%d:%llu) reported QUEUE_FULL!\n",
drivers/message/fusion/mptscsih.c
1159
ioc->name, 0, sc->device->id, sc->device->lun));
drivers/message/fusion/mptscsih.c
1174
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptscsih.c
1175
struct Scsi_Host *host = ioc->sh;
drivers/message/fusion/mptscsih.c
1188
if (ioc->ScsiLookup != NULL) {
drivers/message/fusion/mptscsih.c
1189
sz1 = ioc->req_depth * sizeof(void *);
drivers/message/fusion/mptscsih.c
1190
kfree(ioc->ScsiLookup);
drivers/message/fusion/mptscsih.c
1191
ioc->ScsiLookup = NULL;
drivers/message/fusion/mptscsih.c
1194
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1196
ioc->name, sz1));
drivers/message/fusion/mptscsih.c
1203
ioc->sh = NULL;
drivers/message/fusion/mptscsih.c
1231
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptscsih.c
1233
scsi_block_requests(ioc->sh);
drivers/message/fusion/mptscsih.c
1247
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptscsih.c
1251
scsi_unblock_requests(ioc->sh);
drivers/message/fusion/mptscsih.c
1279
mpt_print_ioc_summary(h->ioc, h->info_kbuf, &size, 0, 0);
drivers/message/fusion/mptscsih.c
1288
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1290
seq_printf(m, "%s: %s, ", ioc->name, ioc->prod_name);
drivers/message/fusion/mptscsih.c
1291
seq_printf(m, "%s%08xh, ", MPT_FW_REV_MAGIC_ID_STRING, ioc->facts.FWVersion.Word);
drivers/message/fusion/mptscsih.c
1292
seq_printf(m, "Ports=%d, ", ioc->facts.NumberOfPorts);
drivers/message/fusion/mptscsih.c
1293
seq_printf(m, "MaxQ=%d\n", ioc->req_depth);
drivers/message/fusion/mptscsih.c
132
mptscsih_getFreeChainBuffer(MPT_ADAPTER *ioc, int *retIndex)
drivers/message/fusion/mptscsih.c
1324
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
1327
ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1329
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "qcmd: SCpnt=%p\n",
drivers/message/fusion/mptscsih.c
1330
ioc->name, SCpnt));
drivers/message/fusion/mptscsih.c
1332
if (ioc->taskmgmt_quiesce_io)
drivers/message/fusion/mptscsih.c
1338
if ((mf = mpt_get_msg_frame(ioc->DoneCtx, ioc)) == NULL) {
drivers/message/fusion/mptscsih.c
1339
dprintk(ioc, printk(MYIOC_s_WARN_FMT "QueueCmd, no msg frames!!\n",
drivers/message/fusion/mptscsih.c
1340
ioc->name));
drivers/message/fusion/mptscsih.c
1387
pScsiReq->MsgFlags = mpt_msg_flags(ioc);
drivers/message/fusion/mptscsih.c
139
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "getFreeChainBuffer called\n",
drivers/message/fusion/mptscsih.c
140
ioc->name));
drivers/message/fusion/mptscsih.c
1405
pScsiReq->SenseBufferLowAddr = cpu_to_le32(ioc->sense_buf_low_dma
drivers/message/fusion/mptscsih.c
141
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptscsih.c
1413
ioc->add_sge((char *)&pScsiReq->SGL,
drivers/message/fusion/mptscsih.c
1418
if (mptscsih_AddSGE(ioc, SCpnt, pScsiReq, my_idx) != SUCCESS)
drivers/message/fusion/mptscsih.c
142
if (!list_empty(&ioc->FreeChainQ)) {
drivers/message/fusion/mptscsih.c
1423
mptscsih_set_scsi_lookup(ioc, my_idx, SCpnt);
drivers/message/fusion/mptscsih.c
1425
mpt_put_msg_frame(ioc->DoneCtx, ioc, mf);
drivers/message/fusion/mptscsih.c
1426
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Issued SCSI cmd (%p) mf=%p idx=%d\n",
drivers/message/fusion/mptscsih.c
1427
ioc->name, SCpnt, mf, my_idx));
drivers/message/fusion/mptscsih.c
1428
DBG_DUMP_REQUEST_FRAME(ioc, (u32 *)mf);
drivers/message/fusion/mptscsih.c
1432
mptscsih_freeChainBuffers(ioc, my_idx);
drivers/message/fusion/mptscsih.c
1433
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptscsih.c
1448
mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx)
drivers/message/fusion/mptscsih.c
145
chainBuf = list_entry(ioc->FreeChainQ.next, MPT_FRAME_HDR,
drivers/message/fusion/mptscsih.c
1458
chain_idx = ioc->ReqToChain[req_idx];
drivers/message/fusion/mptscsih.c
1459
ioc->ReqToChain[req_idx] = MPT_HOST_NO_CHAIN;
drivers/message/fusion/mptscsih.c
1464
next = ioc->ChainToChain[chain_idx];
drivers/message/fusion/mptscsih.c
1469
ioc->ChainToChain[chain_idx] = MPT_HOST_NO_CHAIN;
drivers/message/fusion/mptscsih.c
1471
chain = (MPT_FRAME_HDR *) (ioc->ChainBuffer
drivers/message/fusion/mptscsih.c
1472
+ (chain_idx * ioc->req_sz));
drivers/message/fusion/mptscsih.c
1474
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptscsih.c
1475
list_add_tail(&chain->u.frame.linkage.list, &ioc->FreeChainQ);
drivers/message/fusion/mptscsih.c
1476
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptscsih.c
1478
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "FreeChainBuffers (index %d)\n",
drivers/message/fusion/mptscsih.c
1479
ioc->name, chain_idx));
drivers/message/fusion/mptscsih.c
148
offset = (u8 *)chainBuf - (u8 *)ioc->ChainBuffer;
drivers/message/fusion/mptscsih.c
149
chain_idx = offset / ioc->req_sz;
drivers/message/fusion/mptscsih.c
151
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1519
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1525
ioc_raw_state = mpt_GetIocState(ioc, 0);
drivers/message/fusion/mptscsih.c
153
ioc->name, chainBuf, ioc->ChainBuffer, offset, chain_idx));
drivers/message/fusion/mptscsih.c
1530
ioc->name, type, ioc_raw_state);
drivers/message/fusion/mptscsih.c
1532
ioc->name, __func__);
drivers/message/fusion/mptscsih.c
1533
if (mpt_HardResetHandler(ioc, CAN_SLEEP) < 0)
drivers/message/fusion/mptscsih.c
1535
"FAILED!!\n", ioc->name);
drivers/message/fusion/mptscsih.c
1543
if (!((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q)
drivers/message/fusion/mptscsih.c
1544
&& (ioc->facts.MsgVersion >= MPI_VERSION_01_05)) &&
drivers/message/fusion/mptscsih.c
1549
ioc->name, type, ioc_raw_state);
drivers/message/fusion/mptscsih.c
1553
mutex_lock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptscsih.c
1554
if (mpt_set_taskmgmt_in_progress_flag(ioc) != 0) {
drivers/message/fusion/mptscsih.c
1562
if ((mf = mpt_get_msg_frame(ioc->TaskCtx, ioc)) == NULL) {
drivers/message/fusion/mptscsih.c
1563
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptscsih.c
1564
"TaskMgmt no msg frames!!\n", ioc->name));
drivers/message/fusion/mptscsih.c
1566
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptscsih.c
1569
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt request (mf=%p)\n",
drivers/message/fusion/mptscsih.c
157
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "getFreeChainBuffer failed\n",
drivers/message/fusion/mptscsih.c
1570
ioc->name, mf));
drivers/message/fusion/mptscsih.c
158
ioc->name));
drivers/message/fusion/mptscsih.c
1593
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt: ctx2abort (0x%08x) "
drivers/message/fusion/mptscsih.c
1594
"task_type = 0x%02X, timeout = %ld\n", ioc->name, ctx2abort,
drivers/message/fusion/mptscsih.c
1597
DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)pScsiTm);
drivers/message/fusion/mptscsih.c
1599
INITIALIZE_MGMT_STATUS(ioc->taskmgmt_cmds.status)
drivers/message/fusion/mptscsih.c
160
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptscsih.c
1601
if ((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) &&
drivers/message/fusion/mptscsih.c
1602
(ioc->facts.MsgVersion >= MPI_VERSION_01_05))
drivers/message/fusion/mptscsih.c
1603
mpt_put_msg_frame_hi_pri(ioc->TaskCtx, ioc, mf);
drivers/message/fusion/mptscsih.c
1605
retval = mpt_send_handshake_request(ioc->TaskCtx, ioc,
drivers/message/fusion/mptscsih.c
1608
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptscsih.c
1610
ioc->name, mf, retval));
drivers/message/fusion/mptscsih.c
1611
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptscsih.c
1612
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptscsih.c
1617
wait_for_completion_timeout(&ioc->taskmgmt_cmds.done,
drivers/message/fusion/mptscsih.c
1619
if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptscsih.c
1621
dtmprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptscsih.c
1622
"TaskMgmt TIMED OUT!(mf=%p)\n", ioc->name, mf));
drivers/message/fusion/mptscsih.c
1623
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptscsih.c
1624
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptscsih.c
1630
retval = mptscsih_taskmgmt_reply(ioc, type,
drivers/message/fusion/mptscsih.c
1631
(SCSITaskMgmtReply_t *) ioc->taskmgmt_cmds.reply);
drivers/message/fusion/mptscsih.c
1633
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1635
ioc->name, jiffies_to_msecs(jiffies - time_count)/1000));
drivers/message/fusion/mptscsih.c
1639
CLEAR_MGMT_STATUS(ioc->taskmgmt_cmds.status)
drivers/message/fusion/mptscsih.c
1643
ioc->name, __func__, mpt_GetIocState(ioc, 0));
drivers/message/fusion/mptscsih.c
1644
retval = (ioc->bus_type == SAS) ?
drivers/message/fusion/mptscsih.c
1645
mpt_HardResetHandler(ioc, CAN_SLEEP) :
drivers/message/fusion/mptscsih.c
1646
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptscsih.c
1647
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptscsih.c
1651
mutex_unlock(&ioc->taskmgmt_cmds.mutex);
drivers/message/fusion/mptscsih.c
1657
mptscsih_get_tm_timeout(MPT_ADAPTER *ioc)
drivers/message/fusion/mptscsih.c
1659
switch (ioc->bus_type) {
drivers/message/fusion/mptscsih.c
1688
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
1700
ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1702
ioc->name, SCpnt);
drivers/message/fusion/mptscsih.c
1707
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1709
ioc->name, SCpnt));
drivers/message/fusion/mptscsih.c
1719
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1721
ioc->name, SCpnt));
drivers/message/fusion/mptscsih.c
1730
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1732
ioc->name, SCpnt));
drivers/message/fusion/mptscsih.c
1740
if ((scpnt_idx = SCPNT_TO_LOOKUP_IDX(ioc, SCpnt)) < 0) {
drivers/message/fusion/mptscsih.c
1745
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "task abort: "
drivers/message/fusion/mptscsih.c
1746
"Command not in the active list! (sc=%p)\n", ioc->name,
drivers/message/fusion/mptscsih.c
1752
if (ioc->timeouts < -1)
drivers/message/fusion/mptscsih.c
1753
ioc->timeouts++;
drivers/message/fusion/mptscsih.c
1756
mpt_halt_firmware(ioc);
drivers/message/fusion/mptscsih.c
1765
mf = MPT_INDEX_2_MFPTR(ioc, scpnt_idx);
drivers/message/fusion/mptscsih.c
177
mptscsih_AddSGE(MPT_ADAPTER *ioc, struct scsi_cmnd *SCpnt,
drivers/message/fusion/mptscsih.c
1771
ctx2abort, mptscsih_get_tm_timeout(ioc));
drivers/message/fusion/mptscsih.c
1773
if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx) {
drivers/message/fusion/mptscsih.c
1774
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1776
ioc->name, SCpnt));
drivers/message/fusion/mptscsih.c
1779
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1781
ioc->name, SCpnt));
drivers/message/fusion/mptscsih.c
1787
ioc->name, ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), retval,
drivers/message/fusion/mptscsih.c
1808
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
1818
ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1820
ioc->name, SCpnt);
drivers/message/fusion/mptscsih.c
1833
mptscsih_get_tm_timeout(ioc));
drivers/message/fusion/mptscsih.c
1837
ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt);
drivers/message/fusion/mptscsih.c
1861
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
1871
ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1873
ioc->name, SCpnt);
drivers/message/fusion/mptscsih.c
1876
if (ioc->timeouts < -1)
drivers/message/fusion/mptscsih.c
1877
ioc->timeouts++;
drivers/message/fusion/mptscsih.c
1885
mptscsih_get_tm_timeout(ioc));
drivers/message/fusion/mptscsih.c
1888
ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt);
drivers/message/fusion/mptscsih.c
1910
MPT_ADAPTER *ioc;
drivers/message/fusion/mptscsih.c
1923
ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
1925
ioc->name, SCpnt);
drivers/message/fusion/mptscsih.c
1930
retval = mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptscsih.c
1937
ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt);
drivers/message/fusion/mptscsih.c
1943
mptscsih_taskmgmt_reply(MPT_ADAPTER *ioc, u8 type,
drivers/message/fusion/mptscsih.c
1950
if (!(ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_RF_VALID)) {
drivers/message/fusion/mptscsih.c
1955
DBG_DUMP_TM_REPLY_FRAME(ioc, (u32 *)pScsiTmReply);
drivers/message/fusion/mptscsih.c
1960
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
1963
"\tterm_cmnds = %d\n", ioc->name, pScsiTmReply->Bus,
drivers/message/fusion/mptscsih.c
1968
if (ioc->facts.MsgVersion >= MPI_VERSION_01_05 &&
drivers/message/fusion/mptscsih.c
1970
mptscsih_taskmgmt_response_code(ioc,
drivers/message/fusion/mptscsih.c
1995
mptscsih_taskmgmt_response_code(MPT_ADAPTER *ioc, u8 response_code)
drivers/message/fusion/mptscsih.c
2026
ioc->name, response_code, desc);
drivers/message/fusion/mptscsih.c
203
frm_sz = ioc->req_sz;
drivers/message/fusion/mptscsih.c
2045
mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf,
drivers/message/fusion/mptscsih.c
2048
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2049
"TaskMgmt completed (mf=%p, mr=%p)\n", ioc->name, mf, mr));
drivers/message/fusion/mptscsih.c
2051
ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptscsih.c
2056
ioc->taskmgmt_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptscsih.c
2057
memcpy(ioc->taskmgmt_cmds.reply, mr,
drivers/message/fusion/mptscsih.c
2060
if (ioc->taskmgmt_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptscsih.c
2061
mpt_clear_taskmgmt_in_progress_flag(ioc);
drivers/message/fusion/mptscsih.c
2062
ioc->taskmgmt_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptscsih.c
2063
complete(&ioc->taskmgmt_cmds.done);
drivers/message/fusion/mptscsih.c
2064
if (ioc->bus_type == SAS)
drivers/message/fusion/mptscsih.c
2065
ioc->schedule_target_reset(ioc);
drivers/message/fusion/mptscsih.c
2115
mptscsih_is_phys_disk(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptscsih.c
2123
if (!ioc->raid_data.pIocPg3)
drivers/message/fusion/mptscsih.c
2125
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
drivers/message/fusion/mptscsih.c
2126
if ((id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) &&
drivers/message/fusion/mptscsih.c
2127
(channel == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskBus)) {
drivers/message/fusion/mptscsih.c
2133
if (ioc->bus_type != SAS)
drivers/message/fusion/mptscsih.c
2139
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
drivers/message/fusion/mptscsih.c
2140
num_paths = mpt_raid_phys_disk_get_num_paths(ioc,
drivers/message/fusion/mptscsih.c
2141
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum);
drivers/message/fusion/mptscsih.c
2148
if ((mpt_raid_phys_disk_pg1(ioc,
drivers/message/fusion/mptscsih.c
2149
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum,
drivers/message/fusion/mptscsih.c
2175
if (list_empty(&ioc->raid_data.inactive_list))
drivers/message/fusion/mptscsih.c
2178
mutex_lock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptscsih.c
2179
list_for_each_entry(component_info, &ioc->raid_data.inactive_list,
drivers/message/fusion/mptscsih.c
2185
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptscsih.c
2193
mptscsih_raid_id_to_num(MPT_ADAPTER *ioc, u8 channel, u8 id)
drivers/message/fusion/mptscsih.c
2201
if (!ioc->raid_data.pIocPg3)
drivers/message/fusion/mptscsih.c
2203
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
drivers/message/fusion/mptscsih.c
2204
if ((id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) &&
drivers/message/fusion/mptscsih.c
2205
(channel == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskBus)) {
drivers/message/fusion/mptscsih.c
2206
rc = ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum;
drivers/message/fusion/mptscsih.c
2211
if (ioc->bus_type != SAS)
drivers/message/fusion/mptscsih.c
2217
for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) {
drivers/message/fusion/mptscsih.c
2218
num_paths = mpt_raid_phys_disk_get_num_paths(ioc,
drivers/message/fusion/mptscsih.c
2219
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum);
drivers/message/fusion/mptscsih.c
2226
if ((mpt_raid_phys_disk_pg1(ioc,
drivers/message/fusion/mptscsih.c
2227
ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum,
drivers/message/fusion/mptscsih.c
2252
if (list_empty(&ioc->raid_data.inactive_list))
drivers/message/fusion/mptscsih.c
2255
mutex_lock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptscsih.c
2256
list_for_each_entry(component_info, &ioc->raid_data.inactive_list,
drivers/message/fusion/mptscsih.c
226
numSgeSlots = ((frm_sz - sgeOffset) / ioc->SGE_size);
drivers/message/fusion/mptscsih.c
2262
mutex_unlock(&ioc->raid_data.inactive_list_mutex);
drivers/message/fusion/mptscsih.c
2310
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
2315
if (ioc->bus_type == SPI) {
drivers/message/fusion/mptscsih.c
2324
max_depth = ioc->sh->can_queue;
drivers/message/fusion/mptscsih.c
2349
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
2355
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2357
ioc->name, sdev, sdev->channel, sdev->id, sdev->lun));
drivers/message/fusion/mptscsih.c
2358
if (ioc->bus_type == SPI)
drivers/message/fusion/mptscsih.c
2359
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2361
ioc->name, sdev->sdtr, sdev->wdtr,
drivers/message/fusion/mptscsih.c
2366
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2368
ioc->name, sdev->queue_depth, vtarget->tflags));
drivers/message/fusion/mptscsih.c
2370
if (ioc->bus_type == SPI)
drivers/message/fusion/mptscsih.c
2371
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2373
ioc->name, vtarget->negoFlags, vtarget->maxOffset,
drivers/message/fusion/mptscsih.c
2377
dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2379
ioc->name,sdev->tagged_supported, sdev->simple_tags));
drivers/message/fusion/mptscsih.c
2400
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
2413
sense_data = ((u8 *)ioc->sense_buf_pool + (req_index * MPT_SENSE_BUFFER_ALLOC));
drivers/message/fusion/mptscsih.c
2418
if ((ioc->events) && (ioc->eventTypes & (1 << MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE))) {
drivers/message/fusion/mptscsih.c
2422
idx = ioc->eventContext % MPTCTL_EVENT_LOG_SIZE;
drivers/message/fusion/mptscsih.c
2423
ioc->events[idx].event = MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE;
drivers/message/fusion/mptscsih.c
2424
ioc->events[idx].eventContext = ioc->eventContext;
drivers/message/fusion/mptscsih.c
2426
ioc->events[idx].data[0] = (pReq->LUN[1] << 24) |
drivers/message/fusion/mptscsih.c
2430
ioc->events[idx].data[1] = (sense_data[13] << 8) | sense_data[12];
drivers/message/fusion/mptscsih.c
2432
ioc->eventContext++;
drivers/message/fusion/mptscsih.c
2433
if (ioc->pcidev->vendor ==
drivers/message/fusion/mptscsih.c
2435
mptscsih_issue_sep_command(ioc,
drivers/message/fusion/mptscsih.c
2443
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Hmmm... SenseData len=0! (?)\n",
drivers/message/fusion/mptscsih.c
2444
ioc->name));
drivers/message/fusion/mptscsih.c
245
ioc->add_sge(psge, sgflags | thisxfer, v2);
drivers/message/fusion/mptscsih.c
2456
mptscsih_get_scsi_lookup(MPT_ADAPTER *ioc, int i)
drivers/message/fusion/mptscsih.c
2461
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2462
scmd = ioc->ScsiLookup[i];
drivers/message/fusion/mptscsih.c
2463
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2478
mptscsih_getclear_scsi_lookup(MPT_ADAPTER *ioc, int i)
drivers/message/fusion/mptscsih.c
2483
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2484
scmd = ioc->ScsiLookup[i];
drivers/message/fusion/mptscsih.c
2485
ioc->ScsiLookup[i] = NULL;
drivers/message/fusion/mptscsih.c
2486
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
249
psge += ioc->SGE_size;
drivers/message/fusion/mptscsih.c
250
sgeOffset += ioc->SGE_size;
drivers/message/fusion/mptscsih.c
2500
mptscsih_set_scsi_lookup(MPT_ADAPTER *ioc, int i, struct scsi_cmnd *scmd)
drivers/message/fusion/mptscsih.c
2504
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2505
ioc->ScsiLookup[i] = scmd;
drivers/message/fusion/mptscsih.c
2506
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2515
SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *sc)
drivers/message/fusion/mptscsih.c
2520
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2521
for (i = 0; i < ioc->req_depth; i++) {
drivers/message/fusion/mptscsih.c
2522
if (ioc->ScsiLookup[i] == sc) {
drivers/message/fusion/mptscsih.c
2529
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/message/fusion/mptscsih.c
2535
mptscsih_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptscsih.c
2539
if (ioc->sh == NULL || shost_priv(ioc->sh) == NULL)
drivers/message/fusion/mptscsih.c
2542
hd = shost_priv(ioc->sh);
drivers/message/fusion/mptscsih.c
2545
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2546
"%s: MPT_IOC_SETUP_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptscsih.c
2549
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2550
"%s: MPT_IOC_PRE_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptscsih.c
2554
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2555
"%s: MPT_IOC_POST_RESET\n", ioc->name, __func__));
drivers/message/fusion/mptscsih.c
2556
if (ioc->internal_cmds.status & MPT_MGMT_STATUS_PENDING) {
drivers/message/fusion/mptscsih.c
2557
ioc->internal_cmds.status |=
drivers/message/fusion/mptscsih.c
2559
complete(&ioc->internal_cmds.done);
drivers/message/fusion/mptscsih.c
2570
mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
drivers/message/fusion/mptscsih.c
2574
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2576
ioc->name, event));
drivers/message/fusion/mptscsih.c
2580
(ioc->bus_type == SPI) && (ioc->soft_resets < -1))
drivers/message/fusion/mptscsih.c
2581
ioc->soft_resets++;
drivers/message/fusion/mptscsih.c
2612
mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req,
drivers/message/fusion/mptscsih.c
2622
ioc->internal_cmds.status |= MPT_MGMT_STATUS_COMMAND_GOOD;
drivers/message/fusion/mptscsih.c
2623
ioc->internal_cmds.completion_code = MPT_SCANDV_GOOD;
drivers/message/fusion/mptscsih.c
2629
ioc->internal_cmds.completion_code =
drivers/message/fusion/mptscsih.c
2630
mptscsih_get_completion_code(ioc, req, reply);
drivers/message/fusion/mptscsih.c
2631
ioc->internal_cmds.status |= MPT_MGMT_STATUS_RF_VALID;
drivers/message/fusion/mptscsih.c
2632
memcpy(ioc->internal_cmds.reply, reply,
drivers/message/fusion/mptscsih.c
2639
sense_data = ((u8 *)ioc->sense_buf_pool +
drivers/message/fusion/mptscsih.c
2643
memcpy(ioc->internal_cmds.sense, sense_data, sz);
drivers/message/fusion/mptscsih.c
2646
if (!(ioc->internal_cmds.status & MPT_MGMT_STATUS_PENDING))
drivers/message/fusion/mptscsih.c
2648
ioc->internal_cmds.status &= ~MPT_MGMT_STATUS_PENDING;
drivers/message/fusion/mptscsih.c
2649
complete(&ioc->internal_cmds.done);
drivers/message/fusion/mptscsih.c
2662
mptscsih_get_completion_code(MPT_ADAPTER *ioc, MPT_FRAME_HDR *req,
drivers/message/fusion/mptscsih.c
267
ioc->add_sge(psge, sgflags | thisxfer, v2);
drivers/message/fusion/mptscsih.c
2675
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2677
"IOCLogInfo=%08xh\n", ioc->name, status, pReply->SCSIState,
drivers/message/fusion/mptscsih.c
268
sgeOffset += ioc->SGE_size;
drivers/message/fusion/mptscsih.c
2739
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2740
" completionCode set to %08xh\n", ioc->name, completion_code));
drivers/message/fusion/mptscsih.c
277
ioc->add_chain((char *)chainSge, 0, sgeOffset,
drivers/message/fusion/mptscsih.c
2774
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
278
ioc->ChainBufferDMA + chain_dma_off);
drivers/message/fusion/mptscsih.c
2780
spin_lock_irqsave(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptscsih.c
2781
if (ioc->ioc_reset_in_progress) {
drivers/message/fusion/mptscsih.c
2782
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptscsih.c
2783
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2784
"%s: busy with host reset\n", ioc->name, __func__));
drivers/message/fusion/mptscsih.c
2787
spin_unlock_irqrestore(&ioc->taskmgmt_lock, flags);
drivers/message/fusion/mptscsih.c
2789
mutex_lock(&ioc->internal_cmds.mutex);
drivers/message/fusion/mptscsih.c
284
RequestNB = (((sgeOffset - 1) >> ioc->NBShiftFactor) + 1) & 0x03;
drivers/message/fusion/mptscsih.c
285
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
286
"Single Buffer RequestNB=%x, sgeOffset=%d\n", ioc->name, RequestNB, sgeOffset));
drivers/message/fusion/mptscsih.c
287
ioc->RequestNB[req_idx] = RequestNB;
drivers/message/fusion/mptscsih.c
2889
if ((mf = mpt_get_msg_frame(ioc->InternalCtx, ioc)) == NULL) {
drivers/message/fusion/mptscsih.c
2890
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT "%s: No msg frames!\n",
drivers/message/fusion/mptscsih.c
2891
ioc->name, __func__));
drivers/message/fusion/mptscsih.c
2919
pScsiReq->MsgFlags = mpt_msg_flags(ioc);
drivers/message/fusion/mptscsih.c
2931
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2932
"%s: Untagged! 0x%02x\n", ioc->name, __func__, cmd));
drivers/message/fusion/mptscsih.c
2939
pScsiReq->SenseBufferLowAddr = cpu_to_le32(ioc->sense_buf_low_dma
drivers/message/fusion/mptscsih.c
2942
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2944
ioc->name, __func__, cmd, io->channel, io->id, io->lun));
drivers/message/fusion/mptscsih.c
2947
ioc->add_sge((char *) &pScsiReq->SGL,
drivers/message/fusion/mptscsih.c
2950
ioc->add_sge((char *) &pScsiReq->SGL,
drivers/message/fusion/mptscsih.c
2953
INITIALIZE_MGMT_STATUS(ioc->internal_cmds.status)
drivers/message/fusion/mptscsih.c
2954
mpt_put_msg_frame(ioc->InternalCtx, ioc, mf);
drivers/message/fusion/mptscsih.c
2955
timeleft = wait_for_completion_timeout(&ioc->internal_cmds.done,
drivers/message/fusion/mptscsih.c
2957
if (!(ioc->internal_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptscsih.c
2959
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
2960
"%s: TIMED OUT for cmd=0x%02x\n", ioc->name, __func__,
drivers/message/fusion/mptscsih.c
2962
if (ioc->internal_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET) {
drivers/message/fusion/mptscsih.c
2963
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptscsih.c
2970
ioc->name, __func__, mpt_GetIocState(ioc, 0),
drivers/message/fusion/mptscsih.c
2972
mpt_Soft_Hard_ResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptscsih.c
2973
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptscsih.c
2978
ret = ioc->internal_cmds.completion_code;
drivers/message/fusion/mptscsih.c
2979
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: success, rc=0x%02x\n",
drivers/message/fusion/mptscsih.c
2980
ioc->name, __func__, ret));
drivers/message/fusion/mptscsih.c
2983
CLEAR_MGMT_STATUS(ioc->internal_cmds.status)
drivers/message/fusion/mptscsih.c
2984
mutex_unlock(&ioc->internal_cmds.mutex);
drivers/message/fusion/mptscsih.c
301
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SG: Chain Required! sg done %d\n",
drivers/message/fusion/mptscsih.c
302
ioc->name, sg_done));
drivers/message/fusion/mptscsih.c
3036
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3039
(ioc->facts.FWVersion.Word & 0xFF000000) >> 24,
drivers/message/fusion/mptscsih.c
3040
(ioc->facts.FWVersion.Word & 0x00FF0000) >> 16,
drivers/message/fusion/mptscsih.c
3041
(ioc->facts.FWVersion.Word & 0x0000FF00) >> 8,
drivers/message/fusion/mptscsih.c
3042
ioc->facts.FWVersion.Word & 0x000000FF);
drivers/message/fusion/mptscsih.c
3052
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3055
(ioc->biosVersion & 0xFF000000) >> 24,
drivers/message/fusion/mptscsih.c
3056
(ioc->biosVersion & 0x00FF0000) >> 16,
drivers/message/fusion/mptscsih.c
3057
(ioc->biosVersion & 0x0000FF00) >> 8,
drivers/message/fusion/mptscsih.c
3058
ioc->biosVersion & 0x000000FF);
drivers/message/fusion/mptscsih.c
3068
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3070
return snprintf(buf, PAGE_SIZE, "%03x\n", ioc->facts.MsgVersion);
drivers/message/fusion/mptscsih.c
3081
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3083
return snprintf(buf, PAGE_SIZE, "%s\n", ioc->prod_name);
drivers/message/fusion/mptscsih.c
3095
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3098
ioc->nvdata_version_persistent);
drivers/message/fusion/mptscsih.c
3109
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
311
u32 *ptmp = (u32 *) (psge - ioc->SGE_size);
drivers/message/fusion/mptscsih.c
3111
return snprintf(buf, PAGE_SIZE, "%02xh\n",ioc->nvdata_version_default);
drivers/message/fusion/mptscsih.c
3122
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3124
return snprintf(buf, PAGE_SIZE, "%s\n", ioc->board_name);
drivers/message/fusion/mptscsih.c
3134
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3136
return snprintf(buf, PAGE_SIZE, "%s\n", ioc->board_assembly);
drivers/message/fusion/mptscsih.c
3147
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3149
return snprintf(buf, PAGE_SIZE, "%s\n", ioc->board_tracer);
drivers/message/fusion/mptscsih.c
3160
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3162
return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->io_missing_delay);
drivers/message/fusion/mptscsih.c
3173
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3175
return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->device_missing_delay);
drivers/message/fusion/mptscsih.c
3186
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3188
return snprintf(buf, PAGE_SIZE, "%08xh\n", ioc->debug_level);
drivers/message/fusion/mptscsih.c
3196
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptscsih.c
3202
ioc->debug_level = val;
drivers/message/fusion/mptscsih.c
3204
ioc->name, ioc->debug_level);
drivers/message/fusion/mptscsih.c
325
sgeOffset += ioc->SGE_size;
drivers/message/fusion/mptscsih.c
326
ioc->add_chain((char *)chainSge, nextChain, sgeOffset,
drivers/message/fusion/mptscsih.c
327
ioc->ChainBufferDMA + chain_dma_off);
drivers/message/fusion/mptscsih.c
334
RequestNB = (((sgeOffset - 1) >> ioc->NBShiftFactor) + 1) & 0x03;
drivers/message/fusion/mptscsih.c
335
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Chain Buffer Needed, RequestNB=%x sgeOffset=%d\n", ioc->name, RequestNB, sgeOffset));
drivers/message/fusion/mptscsih.c
336
ioc->RequestNB[req_idx] = RequestNB;
drivers/message/fusion/mptscsih.c
345
if ((mptscsih_getFreeChainBuffer(ioc, &newIndex)) == FAILED) {
drivers/message/fusion/mptscsih.c
346
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
348
ioc->name, pReq->CDB[0], SCpnt));
drivers/message/fusion/mptscsih.c
356
ioc->ChainToChain[chain_idx] = newIndex;
drivers/message/fusion/mptscsih.c
358
ioc->ReqToChain[req_idx] = newIndex;
drivers/message/fusion/mptscsih.c
361
chain_dma_off = ioc->req_sz * chain_idx;
drivers/message/fusion/mptscsih.c
368
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT " Current buff @ %p (index 0x%x)",
drivers/message/fusion/mptscsih.c
369
ioc->name, psge, req_idx));
drivers/message/fusion/mptscsih.c
373
psge = (char *) (ioc->ChainBuffer + chain_dma_off);
drivers/message/fusion/mptscsih.c
377
dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT " Chain buff @ %p (index 0x%x)\n",
drivers/message/fusion/mptscsih.c
378
ioc->name, psge, chain_idx));
drivers/message/fusion/mptscsih.c
390
mptscsih_issue_sep_command(MPT_ADAPTER *ioc, VirtTarget *vtarget,
drivers/message/fusion/mptscsih.c
396
if (ioc->bus_type != SAS)
drivers/message/fusion/mptscsih.c
404
if ((mf = mpt_get_msg_frame(ioc->InternalCtx, ioc)) == NULL) {
drivers/message/fusion/mptscsih.c
405
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT "%s: no msg frames!!\n",
drivers/message/fusion/mptscsih.c
406
ioc->name,__func__));
drivers/message/fusion/mptscsih.c
416
devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
418
ioc->name, SlotStatus, SEPMsg->Bus, SEPMsg->TargetID));
drivers/message/fusion/mptscsih.c
419
mpt_put_msg_frame(ioc->DoneCtx, ioc, mf);
drivers/message/fusion/mptscsih.c
434
mptscsih_info_scsiio(MPT_ADAPTER *ioc, struct scsi_cmnd *sc, SCSIIOReply_t * pScsiReply)
drivers/message/fusion/mptscsih.c
538
ioc->name, pScsiReply->Bus, pScsiReply->TargetID, sc->device->lun);
drivers/message/fusion/mptscsih.c
540
"resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow,
drivers/message/fusion/mptscsih.c
543
"sc->result = %08X\n", ioc->name, le16_to_cpu(pScsiReply->TaskTag),
drivers/message/fusion/mptscsih.c
548
ioc->name, desc, ioc_status, desc1, pScsiReply->SCSIStatus,
drivers/message/fusion/mptscsih.c
557
"[0x%02x,0x%02x,0x%02x]\n", ioc->name, skey, asc, ascq);
drivers/message/fusion/mptscsih.c
566
ioc->name, le32_to_cpu(pScsiReply->ResponseInfo));
drivers/message/fusion/mptscsih.c
586
mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
drivers/message/fusion/mptscsih.c
596
hd = shost_priv(ioc->sh);
drivers/message/fusion/mptscsih.c
609
sc = mptscsih_getclear_scsi_lookup(ioc, req_idx);
drivers/message/fusion/mptscsih.c
619
ioc->name);
drivers/message/fusion/mptscsih.c
621
mptscsih_freeChainBuffers(ioc, req_idx);
drivers/message/fusion/mptscsih.c
626
mptscsih_freeChainBuffers(ioc, req_idx);
drivers/message/fusion/mptscsih.c
630
if (ioc->bus_type == SAS) {
drivers/message/fusion/mptscsih.c
645
if((ioc->facts.MsgVersion >= MPI_VERSION_01_05) && pScsiReply){
drivers/message/fusion/mptscsih.c
646
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
648
ioc->name, mf, mr, sc, req_idx, pScsiReply->TaskTag));
drivers/message/fusion/mptscsih.c
650
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
652
ioc->name, mf, mr, sc, req_idx));
drivers/message/fusion/mptscsih.c
694
"FCP_ResponseInfo=%08xh\n", ioc->name,
drivers/message/fusion/mptscsih.c
718
if (ioc->bus_type != FC)
drivers/message/fusion/mptscsih.c
732
mptscsih_issue_sep_command(ioc, vtarget,
drivers/message/fusion/mptscsih.c
739
if ( ioc->bus_type == SAS ) {
drivers/message/fusion/mptscsih.c
771
} else if (ioc->bus_type == FC) {
drivers/message/fusion/mptscsih.c
797
if (ioc->bus_type == FC)
drivers/message/fusion/mptscsih.c
809
dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
811
ioc->name, sc->result, sc->device->channel, sc->device->id));
drivers/message/fusion/mptscsih.c
829
if (ioc->bus_type == SPI) {
drivers/message/fusion/mptscsih.c
84
struct scsi_cmnd *mptscsih_get_scsi_lookup(MPT_ADAPTER *ioc, int i);
drivers/message/fusion/mptscsih.c
85
static struct scsi_cmnd * mptscsih_getclear_scsi_lookup(MPT_ADAPTER *ioc, int i);
drivers/message/fusion/mptscsih.c
86
static void mptscsih_set_scsi_lookup(MPT_ADAPTER *ioc, int i, struct scsi_cmnd *scmd);
drivers/message/fusion/mptscsih.c
869
dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
87
static int SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *scmd);
drivers/message/fusion/mptscsih.c
871
ioc->name, sc->underflow));
drivers/message/fusion/mptscsih.c
872
dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptscsih.c
873
" ActBytesXferd=%02xh\n", ioc->name, xfer_cnt));
drivers/message/fusion/mptscsih.c
88
int mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
drivers/message/fusion/mptscsih.c
90
int mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
drivers/message/fusion/mptscsih.c
901
if ((ioc->bus_type == SPI) &&
drivers/message/fusion/mptscsih.c
92
static int mptscsih_AddSGE(MPT_ADAPTER *ioc, struct scsi_cmnd *SCpnt,
drivers/message/fusion/mptscsih.c
94
static void mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx);
drivers/message/fusion/mptscsih.h
127
extern int mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
drivers/message/fusion/mptscsih.h
128
extern int mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
drivers/message/fusion/mptscsih.h
129
extern int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
drivers/message/fusion/mptscsih.h
130
extern int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
drivers/message/fusion/mptscsih.h
131
extern int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
drivers/message/fusion/mptscsih.h
133
extern u8 mptscsih_raid_id_to_num(MPT_ADAPTER *ioc, u8 channel, u8 id);
drivers/message/fusion/mptscsih.h
134
extern int mptscsih_is_phys_disk(MPT_ADAPTER *ioc, u8 channel, u8 id);
drivers/message/fusion/mptscsih.h
136
extern struct scsi_cmnd *mptscsih_get_scsi_lookup(MPT_ADAPTER *ioc, int i);
drivers/message/fusion/mptscsih.h
137
extern void mptscsih_taskmgmt_response_code(MPT_ADAPTER *ioc, u8 response_code);
drivers/message/fusion/mptspi.c
1070
hd->ioc->spi_data.noQas)
drivers/message/fusion/mptspi.c
111
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
1117
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
1118
struct Scsi_Host *shost = ioc->sh;
drivers/message/fusion/mptspi.c
112
SpiCfgData *pspi_data = &ioc->spi_data;
drivers/message/fusion/mptspi.c
1125
mpt_findImVolumes(ioc);
drivers/message/fusion/mptspi.c
1126
pg3 = ioc->raid_data.pIocPg3;
drivers/message/fusion/mptspi.c
1144
"Integrated RAID requests DV of new device\n", ioc->name);
drivers/message/fusion/mptspi.c
1148
"Integrated RAID detects new device %d\n", ioc->name, disk);
drivers/message/fusion/mptspi.c
1149
scsi_scan_target(&ioc->sh->shost_gendev, 1, disk, 0, SCSI_SCAN_RESCAN);
drivers/message/fusion/mptspi.c
1156
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
1159
shost_printk(KERN_ERR, ioc->sh, MYIOC_s_FMT
drivers/message/fusion/mptspi.c
1161
ioc->name, disk);
drivers/message/fusion/mptspi.c
1172
mptspi_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply)
drivers/message/fusion/mptspi.c
1175
struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptspi.c
1177
if (ioc->bus_type != SPI)
drivers/message/fusion/mptspi.c
1189
return mptscsih_event_process(ioc, pEvReply);
drivers/message/fusion/mptspi.c
1267
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
1272
shost_for_each_device(sdev, ioc->sh) {
drivers/message/fusion/mptspi.c
1283
shost_for_each_device(sdev, ioc->sh)
drivers/message/fusion/mptspi.c
1306
mptspi_ioc_reset(MPT_ADAPTER *ioc, int reset_phase)
drivers/message/fusion/mptspi.c
1310
rc = mptscsih_ioc_reset(ioc, reset_phase);
drivers/message/fusion/mptspi.c
1311
if ((ioc->bus_type != SPI) || (!rc))
drivers/message/fusion/mptspi.c
1317
ioc->sh) {
drivers/message/fusion/mptspi.c
1318
struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptspi.c
1333
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptspi.c
1334
struct _MPT_SCSI_HOST *hd = shost_priv(ioc->sh);
drivers/message/fusion/mptspi.c
1358
MPT_ADAPTER *ioc;
drivers/message/fusion/mptspi.c
1370
ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptspi.c
1371
ioc->DoneCtx = mptspiDoneCtx;
drivers/message/fusion/mptspi.c
1372
ioc->TaskCtx = mptspiTaskCtx;
drivers/message/fusion/mptspi.c
1373
ioc->InternalCtx = mptspiInternalCtx;
drivers/message/fusion/mptspi.c
1377
if (ioc->last_state != MPI_IOC_STATE_OPERATIONAL) {
drivers/message/fusion/mptspi.c
1380
ioc->name);
drivers/message/fusion/mptspi.c
1385
if (!ioc->active) {
drivers/message/fusion/mptspi.c
1387
ioc->name);
drivers/message/fusion/mptspi.c
1395
for (ii=0; ii < ioc->facts.NumberOfPorts; ii++) {
drivers/message/fusion/mptspi.c
1396
if (ioc->pfacts[ii].ProtocolFlags &
drivers/message/fusion/mptspi.c
1404
ioc->name, ioc);
drivers/message/fusion/mptspi.c
1413
ioc->name);
drivers/message/fusion/mptspi.c
1423
spin_lock_irqsave(&ioc->FreeQlock, flags);
drivers/message/fusion/mptspi.c
1427
ioc->sh = sh;
drivers/message/fusion/mptspi.c
143
ddvprintk(ioc,
drivers/message/fusion/mptspi.c
1446
sh->max_id = ioc->devices_per_bus;
drivers/message/fusion/mptspi.c
145
"byte56=%02x on id=%d!\n", ioc->name,
drivers/message/fusion/mptspi.c
1452
if (ioc->ir_firmware)
drivers/message/fusion/mptspi.c
1456
sh->this_id = ioc->pfacts[0].PortSCSIID;
drivers/message/fusion/mptspi.c
1460
sh->unique_id = ioc->id;
drivers/message/fusion/mptspi.c
1471
scale = ioc->req_sz/ioc->SGE_size;
drivers/message/fusion/mptspi.c
1472
if (ioc->sg_addr_size == sizeof(u64)) {
drivers/message/fusion/mptspi.c
1474
(ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptspi.c
1475
(ioc->req_sz - 60) / ioc->SGE_size;
drivers/message/fusion/mptspi.c
1478
(ioc->facts.MaxChainDepth-1) + scale +
drivers/message/fusion/mptspi.c
1479
(ioc->req_sz - 64) / ioc->SGE_size;
drivers/message/fusion/mptspi.c
1484
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptspi.c
1486
ioc->name, numSGE, sh->sg_tablesize));
drivers/message/fusion/mptspi.c
1490
spin_unlock_irqrestore(&ioc->FreeQlock, flags);
drivers/message/fusion/mptspi.c
1493
hd->ioc = ioc;
drivers/message/fusion/mptspi.c
1498
ioc->ScsiLookup = kcalloc(ioc->req_depth, sizeof(void *), GFP_KERNEL);
drivers/message/fusion/mptspi.c
1499
if (!ioc->ScsiLookup) {
drivers/message/fusion/mptspi.c
1503
spin_lock_init(&ioc->scsi_lookup_lock);
drivers/message/fusion/mptspi.c
1505
dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScsiLookup @ %p\n",
drivers/message/fusion/mptspi.c
1506
ioc->name, ioc->ScsiLookup));
drivers/message/fusion/mptspi.c
1508
ioc->spi_data.Saf_Te = mpt_saf_te;
drivers/message/fusion/mptspi.c
1509
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptspi.c
1511
ioc->name,
drivers/message/fusion/mptspi.c
1513
ioc->spi_data.noQas = 0;
drivers/message/fusion/mptspi.c
1520
if (ioc->spi_data.sdp0length != 0)
drivers/message/fusion/mptspi.c
1523
error = scsi_add_host (sh, &ioc->pcidev->dev);
drivers/message/fusion/mptspi.c
1525
dprintk(ioc, printk(MYIOC_s_ERR_FMT
drivers/message/fusion/mptspi.c
1526
"scsi_add_host failed\n", ioc->name));
drivers/message/fusion/mptspi.c
1533
if (ioc->spi_data.bus_reset)
drivers/message/fusion/mptspi.c
1549
MPT_ADAPTER *ioc = pci_get_drvdata(pdev);
drivers/message/fusion/mptspi.c
1551
scsi_remove_host(ioc->sh);
drivers/message/fusion/mptspi.c
237
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptspi.c
238
"Disabling QAS due to noQas=%02x on id=%d!\n", ioc->name, noQas, id));
drivers/message/fusion/mptspi.c
256
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
266
if ((mf = mpt_get_msg_frame(ioc->DoneCtx, ioc)) == NULL) {
drivers/message/fusion/mptspi.c
267
dfailprintk(ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptspi.c
268
"writeIOCPage4 : no msg frames!\n",ioc->name));
drivers/message/fusion/mptspi.c
290
IOCPage4Ptr = ioc->spi_data.pIocPg4;
drivers/message/fusion/mptspi.c
291
dataDma = ioc->spi_data.IocPg4_dma;
drivers/message/fusion/mptspi.c
303
ioc->add_sge((char *)&pReq->PageBufferSGE, flagsLength, dataDma);
drivers/message/fusion/mptspi.c
305
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptspi.c
307
ioc->name, IOCPage4Ptr->MaxSEP, IOCPage4Ptr->ActiveSEP, id, channel));
drivers/message/fusion/mptspi.c
309
mpt_put_msg_frame(ioc->DoneCtx, ioc, mf);
drivers/message/fusion/mptspi.c
343
if ((sdev->type == TYPE_PROCESSOR) && (hd->ioc->spi_data.Saf_Te)) {
drivers/message/fusion/mptspi.c
379
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
381
if (!ioc->raid_data.pIocPg2)
drivers/message/fusion/mptspi.c
384
if (!ioc->raid_data.pIocPg2->NumActiveVolumes)
drivers/message/fusion/mptspi.c
386
for (i=0; i < ioc->raid_data.pIocPg2->NumActiveVolumes; i++) {
drivers/message/fusion/mptspi.c
387
if (ioc->raid_data.pIocPg2->RaidVolume[i].VolumeID == id) {
drivers/message/fusion/mptspi.c
402
MPT_ADAPTER *ioc;
drivers/message/fusion/mptspi.c
407
ioc = hd->ioc;
drivers/message/fusion/mptspi.c
412
vtarget->ioc_id = ioc->id;
drivers/message/fusion/mptspi.c
420
if (mptscsih_is_phys_disk(ioc, 0, starget->id) == 0)
drivers/message/fusion/mptspi.c
426
vtarget->id = mptscsih_raid_id_to_num(ioc, 0,
drivers/message/fusion/mptspi.c
433
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT
drivers/message/fusion/mptspi.c
434
"RAID Volume @ channel=%d id=%d\n", ioc->name, starget->channel,
drivers/message/fusion/mptspi.c
438
if (ioc->spi_data.nvram &&
drivers/message/fusion/mptspi.c
439
ioc->spi_data.nvram[starget->id] != MPT_HOST_NVRAM_INVALID) {
drivers/message/fusion/mptspi.c
440
u32 nvram = ioc->spi_data.nvram[starget->id];
drivers/message/fusion/mptspi.c
444
spi_min_period(starget) = ioc->spi_data.minSyncFactor;
drivers/message/fusion/mptspi.c
445
spi_max_width(starget) = ioc->spi_data.maxBusWidth;
drivers/message/fusion/mptspi.c
447
spi_max_offset(starget) = ioc->spi_data.maxSyncOffset;
drivers/message/fusion/mptspi.c
473
ddvprintk(hd->ioc, printk(MYIOC_s_DEBUG_FMT "id=%d Requested = 0x%08x"
drivers/message/fusion/mptspi.c
475
hd->ioc->name, starget->id, ii,
drivers/message/fusion/mptspi.c
498
ddvprintk(hd->ioc, printk(MYIOC_s_DEBUG_FMT "id=%d Read = 0x%08x"
drivers/message/fusion/mptspi.c
500
hd->ioc->name, starget->id, ii,
drivers/message/fusion/mptspi.c
518
struct _MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
531
size = ioc->spi_data.sdp0length * 4;
drivers/message/fusion/mptspi.c
538
spi_dev_pg0 = dma_alloc_coherent(&ioc->pcidev->dev, size, &spi_dev_pg0_dma, GFP_KERNEL);
drivers/message/fusion/mptspi.c
541
"dma_alloc_coherent for parameters failed\n", ioc->name);
drivers/message/fusion/mptspi.c
547
hdr.PageVersion = ioc->spi_data.sdp0version;
drivers/message/fusion/mptspi.c
548
hdr.PageLength = ioc->spi_data.sdp0length;
drivers/message/fusion/mptspi.c
561
if (mpt_config(ioc, &cfg)) {
drivers/message/fusion/mptspi.c
562
starget_printk(KERN_ERR, starget, MYIOC_s_FMT "mpt_config failed\n", ioc->name);
drivers/message/fusion/mptspi.c
571
dma_free_coherent(&ioc->pcidev->dev, size, spi_dev_pg0, spi_dev_pg0_dma);
drivers/message/fusion/mptspi.c
620
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
626
mutex_lock(&ioc->internal_cmds.mutex);
drivers/message/fusion/mptspi.c
630
if ((mf = mpt_get_msg_frame(ioc->InternalCtx, ioc)) == NULL) {
drivers/message/fusion/mptspi.c
631
dfailprintk(hd->ioc, printk(MYIOC_s_WARN_FMT
drivers/message/fusion/mptspi.c
632
"%s: no msg frames!\n", ioc->name, __func__));
drivers/message/fusion/mptspi.c
651
ioc->add_sge((char *)&pReq->ActionDataSGE,
drivers/message/fusion/mptspi.c
654
ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "RAID Volume action=%x channel=%d id=%d\n",
drivers/message/fusion/mptspi.c
655
ioc->name, pReq->Action, channel, id));
drivers/message/fusion/mptspi.c
657
INITIALIZE_MGMT_STATUS(ioc->internal_cmds.status)
drivers/message/fusion/mptspi.c
658
mpt_put_msg_frame(ioc->InternalCtx, ioc, mf);
drivers/message/fusion/mptspi.c
659
timeleft = wait_for_completion_timeout(&ioc->internal_cmds.done, 10*HZ);
drivers/message/fusion/mptspi.c
660
if (!(ioc->internal_cmds.status & MPT_MGMT_STATUS_COMMAND_GOOD)) {
drivers/message/fusion/mptspi.c
662
dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT "%s: TIMED OUT!\n",
drivers/message/fusion/mptspi.c
663
ioc->name, __func__));
drivers/message/fusion/mptspi.c
664
if (ioc->internal_cmds.status & MPT_MGMT_STATUS_DID_IOCRESET)
drivers/message/fusion/mptspi.c
668
ioc->name, __func__);
drivers/message/fusion/mptspi.c
669
mpt_HardResetHandler(ioc, CAN_SLEEP);
drivers/message/fusion/mptspi.c
670
mpt_free_msg_frame(ioc, mf);
drivers/message/fusion/mptspi.c
675
ret = ioc->internal_cmds.completion_code;
drivers/message/fusion/mptspi.c
678
CLEAR_MGMT_STATUS(ioc->internal_cmds.status)
drivers/message/fusion/mptspi.c
679
mutex_unlock(&ioc->internal_cmds.mutex);
drivers/message/fusion/mptspi.c
687
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
698
"Integrated RAID quiesce failed\n", ioc->name);
drivers/message/fusion/mptspi.c
709
"Integrated RAID resume failed\n", ioc->name);
drivers/message/fusion/mptspi.c
722
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
725
mptscsih_is_phys_disk(ioc, 0, sdev->id) == 0)
drivers/message/fusion/mptspi.c
731
ioc->name, sizeof(VirtDevice));
drivers/message/fusion/mptspi.c
763
ddvprintk(hd->ioc, printk(MYIOC_s_DEBUG_FMT "id=%d min_period=0x%02x"
drivers/message/fusion/mptspi.c
764
" max_offset=0x%02x max_width=%d\n", hd->ioc->name,
drivers/message/fusion/mptspi.c
782
MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
791
mptscsih_is_phys_disk(ioc, 0, SCpnt->device->id) == 0) {
drivers/message/fusion/mptspi.c
798
ddvprintk(ioc, scsi_print_command(SCpnt));
drivers/message/fusion/mptspi.c
856
struct _MPT_ADAPTER *ioc = hd->ioc;
drivers/message/fusion/mptspi.c
873
size = ioc->spi_data.sdp1length * 4;
drivers/message/fusion/mptspi.c
875
pg1 = dma_alloc_coherent(&ioc->pcidev->dev, size, &pg1_dma, GFP_KERNEL);
drivers/message/fusion/mptspi.c
878
"dma_alloc_coherent for parameters failed\n", ioc->name);
drivers/message/fusion/mptspi.c
884
hdr.PageVersion = ioc->spi_data.sdp1version;
drivers/message/fusion/mptspi.c
885
hdr.PageLength = ioc->spi_data.sdp1length;
drivers/message/fusion/mptspi.c
913
"IDP:ON\n", ioc->name);
drivers/message/fusion/mptspi.c
924
if (mpt_config(ioc, &cfg)) {
drivers/message/fusion/mptspi.c
926
"mpt_config failed\n", ioc->name);
drivers/message/fusion/mptspi.c
932
dma_free_coherent(&ioc->pcidev->dev, size, pg1, pg1_dma);
drivers/net/can/kvaser_pciefd/kvaser_pciefd.h
66
u32 ioc;
drivers/net/can/kvaser_pciefd/kvaser_pciefd_core.c
478
can->ioc &= ~KVASER_PCIEFD_KCAN_IOC_LED;
drivers/net/can/kvaser_pciefd/kvaser_pciefd_core.c
480
can->ioc |= KVASER_PCIEFD_KCAN_IOC_LED;
drivers/net/can/kvaser_pciefd/kvaser_pciefd_core.c
482
iowrite32(can->ioc, can->reg_base + KVASER_PCIEFD_KCAN_IOC_REG);
drivers/net/can/kvaser_pciefd/kvaser_pciefd_core.c
973
can->ioc = ioread32(can->reg_base + KVASER_PCIEFD_KCAN_IOC_REG);
drivers/net/ethernet/brocade/bna/bfa_cee.c
162
BUG_ON(!((cee != NULL) && (cee->ioc != NULL)));
drivers/net/ethernet/brocade/bna/bfa_cee.c
163
if (!bfa_nw_ioc_is_operational(cee->ioc))
drivers/net/ethernet/brocade/bna/bfa_cee.c
175
bfa_ioc_portid(cee->ioc));
drivers/net/ethernet/brocade/bna/bfa_cee.c
177
bfa_nw_ioc_mbox_queue(cee->ioc, &cee->get_cfg_mb, NULL, NULL);
drivers/net/ethernet/brocade/bna/bfa_cee.c
271
bfa_nw_cee_attach(struct bfa_cee *cee, struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_cee.c
276
cee->ioc = ioc;
drivers/net/ethernet/brocade/bna/bfa_cee.c
278
bfa_nw_ioc_mbox_regisr(cee->ioc, BFI_MC_CEE, bfa_cee_isr, cee);
drivers/net/ethernet/brocade/bna/bfa_cee.c
280
bfa_nw_ioc_notify_register(cee->ioc, &cee->ioc_notify);
drivers/net/ethernet/brocade/bna/bfa_cee.h
45
struct bfa_ioc *ioc;
drivers/net/ethernet/brocade/bna/bfa_cee.h
54
void bfa_nw_cee_attach(struct bfa_cee *cee, struct bfa_ioc *ioc, void *dev);
drivers/net/ethernet/brocade/bna/bfa_cs.h
44
BFA_SM_TABLE(ioc, bfa_ioc, ioc_event, bfa_fsm_ioc_t)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1006
bfa_ioc_lpu_stop(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1011
bfa_ioc_mbox_flush(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1012
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1019
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1023
bfa_ioc_sync_ack(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1024
bfa_ioc_notify_fail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1026
bfa_ioc_sync_leave(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1027
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1028
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1031
if (bfa_ioc_sync_complete(ioc))
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1034
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1042
bfa_ioc_pf_hwfailed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1046
bfa_ioc_hw_sem_get_cancel(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1081
bfa_ioc_event_notify(struct bfa_ioc *ioc, enum bfa_ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1085
list_for_each_entry(notify, &ioc->notify_q, qe)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1090
bfa_ioc_disable_comp(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1092
ioc->cbfn->disable_cbfn(ioc->bfa);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1093
bfa_ioc_event_notify(ioc, BFA_IOC_E_DISABLED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1126
bfa_ioc_fwver_clear(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1131
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, loff);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1132
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1135
writel(0, ioc->ioc_regs.smem_page_start + loff);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1142
bfa_ioc_hw_sem_init(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1148
r32 = readl(ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1151
r32 = readl(ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1154
fwstate = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1156
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1160
bfa_nw_ioc_fwver_get(ioc, &fwhdr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1163
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1167
bfa_ioc_fwver_clear(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1168
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_UNINIT);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1169
bfa_ioc_set_alt_ioc_fwstate(ioc, BFI_IOC_UNINIT);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1174
readl(ioc->ioc_regs.ioc_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1175
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1178
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1182
bfa_ioc_hw_sem_get(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1190
r32 = readl(ioc->ioc_regs.ioc_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1192
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_SEM_ERROR);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1196
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_SEMLOCKED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1200
mod_timer(&ioc->sem_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1205
bfa_nw_ioc_hw_sem_release(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1207
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1211
bfa_ioc_hw_sem_get_cancel(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1213
timer_delete(&ioc->sem_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1218
bfa_ioc_lmem_init(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1224
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1232
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1239
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1250
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1254
bfa_ioc_lpu_start(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1261
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1264
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1268
bfa_ioc_lpu_stop(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1275
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1278
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1283
bfa_nw_ioc_fwver_get(struct bfa_ioc *ioc, struct bfi_ioc_image_hdr *fwhdr)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1290
pgnum = bfa_ioc_smem_pgnum(ioc, loff);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1291
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1296
swab32(readl(loff + ioc->ioc_regs.smem_page_start));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
133
static void bfa_iocpf_enable(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
134
static void bfa_iocpf_disable(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
135
static void bfa_iocpf_fail(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
136
static void bfa_iocpf_initfail(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
137
static void bfa_iocpf_getattrfail(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
138
static void bfa_iocpf_stop(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1740
bfa_nw_ioc_flash_img_get_chnk(struct bfa_ioc *ioc, u32 off,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1743
return bfa_flash_raw_read(ioc->pcidev.pci_bar_kva,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1749
bfa_ioc_flash_fwver_cmp(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1756
status = bfa_nw_ioc_flash_img_get_chnk(ioc, 0, fwimg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1771
bfa_nw_ioc_fwver_cmp(struct bfa_ioc *ioc, struct bfi_ioc_image_hdr *fwhdr)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1777
bfa_cb_image_get_chunk(bfa_ioc_asic_gen(ioc), 0);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1790
smem_flash_cmp = bfa_ioc_flash_fwver_cmp(ioc, fwhdr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1805
bfa_ioc_fwver_valid(struct bfa_ioc *ioc, u32 boot_env)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1809
bfa_nw_ioc_fwver_get(ioc, &fwhdr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1813
return bfa_nw_ioc_fwver_cmp(ioc, &fwhdr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1818
bfa_ioc_msgflush(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1822
r32 = readl(ioc->ioc_regs.lpu_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1824
writel(1, ioc->ioc_regs.lpu_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1828
bfa_ioc_hwinit(struct bfa_ioc *ioc, bool force)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1834
ioc_fwstate = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1845
false : bfa_ioc_fwver_valid(ioc, boot_env);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1848
if (bfa_ioc_boot(ioc, BFI_FWBOOT_TYPE_NORMAL, boot_env) ==
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1850
bfa_ioc_poll_fwinit(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1860
bfa_ioc_poll_fwinit(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1873
bfa_ioc_msgflush(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1874
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FWREADY);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1881
if (bfa_ioc_boot(ioc, BFI_FWBOOT_TYPE_NORMAL, boot_env) ==
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1883
bfa_ioc_poll_fwinit(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1887
bfa_nw_ioc_timeout(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1889
bfa_fsm_send_event(ioc, IOC_E_TIMEOUT);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1893
bfa_ioc_mbox_send(struct bfa_ioc *ioc, void *ioc_msg, int len)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1905
ioc->ioc_regs.hfn_mbox + i * sizeof(u32));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1908
writel(0, ioc->ioc_regs.hfn_mbox + i * sizeof(u32));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1913
writel(1, ioc->ioc_regs.hfn_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1914
(void) readl(ioc->ioc_regs.hfn_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1918
bfa_ioc_send_enable(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1923
bfa_ioc_portid(ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1924
enable_req.clscode = htons(ioc->clscode);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1928
bfa_ioc_mbox_send(ioc, &enable_req, sizeof(struct bfi_ioc_ctrl_req));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1932
bfa_ioc_send_disable(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1937
bfa_ioc_portid(ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1938
disable_req.clscode = htons(ioc->clscode);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1942
bfa_ioc_mbox_send(ioc, &disable_req, sizeof(struct bfi_ioc_ctrl_req));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1946
bfa_ioc_send_getattr(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1951
bfa_ioc_portid(ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1952
bfa_dma_be_addr_set(attr_req.attr_addr, ioc->attr_dma.pa);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1953
bfa_ioc_mbox_send(ioc, &attr_req, sizeof(attr_req));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1957
bfa_nw_ioc_hb_check(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1961
hb_count = readl(ioc->ioc_regs.heartbeat);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1962
if (ioc->hb_count == hb_count) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1963
bfa_ioc_recover(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1966
ioc->hb_count = hb_count;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1969
bfa_ioc_mbox_poll(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1970
mod_timer(&ioc->hb_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1975
bfa_ioc_hb_monitor(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1977
ioc->hb_count = readl(ioc->ioc_regs.heartbeat);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1978
mod_timer(&ioc->hb_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1983
bfa_ioc_hb_stop(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1985
timer_delete(&ioc->hb_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
1990
bfa_ioc_download_fw(struct bfa_ioc *ioc, u32 boot_type,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2007
status = bfa_nw_ioc_flash_img_get_chnk(ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2014
fwimg_size = bfa_cb_image_get_size(bfa_ioc_asic_gen(ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2015
fwimg = bfa_cb_image_get_chunk(bfa_ioc_asic_gen(ioc),
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2019
pgnum = bfa_ioc_smem_pgnum(ioc, loff);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2021
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2028
status = bfa_nw_ioc_flash_img_get_chnk(ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2037
bfa_ioc_asic_gen(ioc),
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2046
ioc->ioc_regs.smem_page_start + loff);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2057
ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2061
writel(bfa_ioc_smem_pgnum(ioc, 0),
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2062
ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
207
bfa_ioc_sm_uninit_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2071
asicmode = BFI_FWBOOT_DEVMODE(ioc->asic_gen, ioc->asic_mode,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2072
ioc->port0_mode, ioc->port1_mode);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2073
writel(asicmode, ((ioc->ioc_regs.smem_page_start)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2075
writel(boot_type, ((ioc->ioc_regs.smem_page_start)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2077
writel(boot_env, ((ioc->ioc_regs.smem_page_start)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2083
bfa_ioc_reset(struct bfa_ioc *ioc, bool force)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2085
bfa_ioc_hwinit(ioc, force);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2090
bfa_ioc_enable_reply(struct bfa_ioc *ioc, enum bfa_mode port_mode,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2093
struct bfa_iocpf *iocpf = &ioc->iocpf;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2095
ioc->port_mode = ioc->port_mode_cfg = port_mode;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2096
ioc->ad_cap_bm = cap_bm;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2102
bfa_ioc_getattr_reply(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2104
struct bfi_ioc_attr *attr = ioc->attr;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2110
bfa_fsm_send_event(ioc, IOC_E_FWRSP_GETATTR);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2115
bfa_ioc_mbox_attach(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2117
struct bfa_ioc_mbox_mod *mod = &ioc->mbox_mod;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2123
mod->mbhdlr[mc].cbarg = ioc->bfa;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2129
bfa_ioc_mbox_poll(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
213
bfa_ioc_sm_uninit(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2131
struct bfa_ioc_mbox_mod *mod = &ioc->mbox_mod;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2146
stat = readl(ioc->ioc_regs.hfn_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2155
bfa_ioc_mbox_send(ioc, cmd->msg, sizeof(cmd->msg));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
217
bfa_fsm_set_state(ioc, bfa_ioc_sm_reset);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2170
bfa_ioc_mbox_flush(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2172
struct bfa_ioc_mbox_mod *mod = &ioc->mbox_mod;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2190
bfa_nw_ioc_smem_read(struct bfa_ioc *ioc, void *tbuf, u32 soff, u32 sz)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2196
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, soff);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2202
if (!bfa_nw_ioc_sem_get(ioc->ioc_regs.ioc_init_sem_reg))
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2205
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2209
r32 = swab32(readl(loff + ioc->ioc_regs.smem_page_start));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2219
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2223
writel(PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, 0),
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2224
ioc->ioc_regs.host_page_num_fn);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2229
readl(ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2230
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2236
bfa_nw_ioc_debug_fwtrc(struct bfa_ioc *ioc, void *trcdata, int *trclen)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2238
u32 loff = BFI_IOC_TRC_OFF + BNA_DBG_FWTRC_LEN * ioc->port_id;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2245
status = bfa_nw_ioc_smem_read(ioc, trcdata, loff, tlen);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2252
bfa_nw_ioc_debug_save_ftrc(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2256
if (ioc->dbg_fwsave_once) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2257
ioc->dbg_fwsave_once = false;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2258
if (ioc->dbg_fwsave_len) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2259
tlen = ioc->dbg_fwsave_len;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2260
bfa_nw_ioc_debug_fwtrc(ioc, ioc->dbg_fwsave, &tlen);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2267
bfa_nw_ioc_debug_fwsave(struct bfa_ioc *ioc, void *trcdata, int *trclen)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
227
bfa_ioc_sm_reset_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2271
if (ioc->dbg_fwsave_len == 0)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2275
if (tlen > ioc->dbg_fwsave_len)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2276
tlen = ioc->dbg_fwsave_len;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2278
memcpy(trcdata, ioc->dbg_fwsave, tlen);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2284
bfa_ioc_fail_notify(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2289
ioc->cbfn->hbfail_cbfn(ioc->bfa);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
229
bfa_fsm_set_state(&ioc->iocpf, bfa_iocpf_sm_reset);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2290
bfa_ioc_event_notify(ioc, BFA_IOC_E_FAILED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2291
bfa_nw_ioc_debug_save_ftrc(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2296
bfa_ioc_pf_enabled(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2298
bfa_fsm_send_event(ioc, IOC_E_ENABLED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2302
bfa_ioc_pf_disabled(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2304
bfa_fsm_send_event(ioc, IOC_E_DISABLED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2308
bfa_ioc_pf_failed(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2310
bfa_fsm_send_event(ioc, IOC_E_PFFAILED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2314
bfa_ioc_pf_hwfailed(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2316
bfa_fsm_send_event(ioc, IOC_E_HWFAILED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2320
bfa_ioc_pf_fwmismatch(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2325
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2330
bfa_ioc_pll_init(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2335
bfa_nw_ioc_sem_get(ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2337
bfa_ioc_pll_init_asic(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2339
ioc->pllinit = true;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
234
bfa_ioc_sm_reset(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2342
bfa_ioc_lmem_init(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2347
bfa_nw_ioc_sem_release(ioc->ioc_regs.ioc_init_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2356
bfa_ioc_boot(struct bfa_ioc *ioc, enum bfi_fwboot_type boot_type,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2361
bfa_ioc_stats(ioc, ioc_boots);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2363
if (bfa_ioc_pll_init(ioc) != BFA_STATUS_OK)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2368
bfa_cb_image_get_chunk(bfa_ioc_asic_gen(ioc), 0);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2372
if (bfa_ioc_flash_fwver_cmp(ioc, drv_fwhdr) ==
drivers/net/ethernet/brocade/bna/bfa_ioc.c
238
bfa_fsm_set_state(ioc, bfa_ioc_sm_enabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2381
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_MEMTEST);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2382
bfa_ioc_set_alt_ioc_fwstate(ioc, BFI_IOC_MEMTEST);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2384
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_INITING);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2385
bfa_ioc_set_alt_ioc_fwstate(ioc, BFI_IOC_INITING);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2388
bfa_ioc_msgflush(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2389
status = bfa_ioc_download_fw(ioc, boot_type, boot_env);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2391
bfa_ioc_lpu_start(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2393
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2406
bfa_ioc_msgget(struct bfa_ioc *ioc, void *mbmsg)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2412
r32 = readl(ioc->ioc_regs.lpu_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
242
bfa_ioc_disable_comp(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2421
r32 = readl(ioc->ioc_regs.lpu_mbox +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2429
writel(1, ioc->ioc_regs.lpu_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2430
readl(ioc->ioc_regs.lpu_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2436
bfa_ioc_isr(struct bfa_ioc *ioc, struct bfi_mbmsg *m)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2439
struct bfa_iocpf *iocpf = &ioc->iocpf;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2443
bfa_ioc_stats(ioc, ioc_isrs);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2450
bfa_ioc_enable_reply(ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
246
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2460
bfa_ioc_getattr_reply(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2476
bfa_nw_ioc_attach(struct bfa_ioc *ioc, void *bfa, struct bfa_ioc_cbfn *cbfn)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2478
ioc->bfa = bfa;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2479
ioc->cbfn = cbfn;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2480
ioc->fcmode = false;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2481
ioc->pllinit = false;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2482
ioc->dbg_fwsave_once = true;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2483
ioc->iocpf.ioc = ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2485
bfa_ioc_mbox_attach(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2486
INIT_LIST_HEAD(&ioc->notify_q);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2488
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2489
bfa_fsm_send_event(ioc, IOC_E_RESET);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2494
bfa_nw_ioc_detach(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2496
bfa_fsm_send_event(ioc, IOC_E_DETACH);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2499
INIT_LIST_HEAD(&ioc->notify_q);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2510
bfa_nw_ioc_pci_init(struct bfa_ioc *ioc, struct bfa_pcidev *pcidev,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2513
ioc->clscode = clscode;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2514
ioc->pcidev = *pcidev;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2519
ioc->port0_mode = ioc->port1_mode = BFI_PORT_MODE_FC;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2520
ioc->asic_mode = BFI_ASIC_MODE_FC;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2524
ioc->asic_gen = BFI_ASIC_GEN_CT;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2525
ioc->port0_mode = ioc->port1_mode = BFI_PORT_MODE_ETH;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2526
ioc->asic_mode = BFI_ASIC_MODE_ETH;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2527
ioc->port_mode = ioc->port_mode_cfg = BFA_MODE_CNA;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2528
ioc->ad_cap_bm = BFA_CM_CNA;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2532
ioc->asic_gen = BFI_ASIC_GEN_CT2;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2535
ioc->asic_mode = BFI_ASIC_MODE_FC16;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2536
ioc->fcmode = true;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2537
ioc->port_mode = ioc->port_mode_cfg = BFA_MODE_HBA;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2538
ioc->ad_cap_bm = BFA_CM_HBA;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2540
ioc->port0_mode = ioc->port1_mode = BFI_PORT_MODE_ETH;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2541
ioc->asic_mode = BFI_ASIC_MODE_ETH;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2543
ioc->port_mode =
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2544
ioc->port_mode_cfg = BFA_MODE_CNA;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2545
ioc->ad_cap_bm = BFA_CM_CNA;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2547
ioc->port_mode =
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2548
ioc->port_mode_cfg = BFA_MODE_NIC;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2549
ioc->ad_cap_bm = BFA_CM_NIC;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
255
bfa_ioc_sm_enabling_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2561
if (ioc->asic_gen == BFI_ASIC_GEN_CT)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2562
bfa_nw_ioc_set_ct_hwif(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2564
WARN_ON(ioc->asic_gen != BFI_ASIC_GEN_CT2);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2565
bfa_nw_ioc_set_ct2_hwif(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2566
bfa_nw_ioc_ct2_poweron(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2569
bfa_ioc_map_port(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
257
bfa_iocpf_enable(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2570
bfa_ioc_reg_init(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2581
bfa_nw_ioc_mem_claim(struct bfa_ioc *ioc, u8 *dm_kva, u64 dm_pa)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2586
ioc->attr_dma.kva = dm_kva;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2587
ioc->attr_dma.pa = dm_pa;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2588
ioc->attr = (struct bfi_ioc_attr *) dm_kva;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2599
bfa_nw_ioc_enable(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2601
bfa_ioc_stats(ioc, ioc_enables);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2602
ioc->dbg_fwsave_once = true;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2604
bfa_fsm_send_event(ioc, IOC_E_ENABLE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2608
bfa_nw_ioc_disable(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2610
bfa_ioc_stats(ioc, ioc_disables);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2611
bfa_fsm_send_event(ioc, IOC_E_DISABLE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2616
bfa_nw_ioc_debug_memclaim(struct bfa_ioc *ioc, void *dbg_fwsave)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2618
ioc->dbg_fwsave = dbg_fwsave;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2619
ioc->dbg_fwsave_len = ioc->iocpf.auto_recover ? BNA_DBG_FWTRC_LEN : 0;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2623
bfa_ioc_smem_pgnum(struct bfa_ioc *ioc, u32 fmaddr)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2625
return PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, fmaddr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2630
bfa_nw_ioc_mbox_regisr(struct bfa_ioc *ioc, enum bfi_mclass mc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2633
struct bfa_ioc_mbox_mod *mod = &ioc->mbox_mod;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
264
bfa_ioc_sm_enabling(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2650
bfa_nw_ioc_mbox_queue(struct bfa_ioc *ioc, struct bfa_mbox_cmd *cmd,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2653
struct bfa_ioc_mbox_mod *mod = &ioc->mbox_mod;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2670
stat = readl(ioc->ioc_regs.hfn_mbox_cmd);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2679
bfa_ioc_mbox_send(ioc, cmd->msg, sizeof(cmd->msg));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
268
bfa_fsm_set_state(ioc, bfa_ioc_sm_getattr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2686
bfa_nw_ioc_mbox_isr(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2688
struct bfa_ioc_mbox_mod *mod = &ioc->mbox_mod;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2692
if (bfa_ioc_msgget(ioc, &m)) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2698
bfa_ioc_isr(ioc, &m);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2708
bfa_ioc_lpu_read_stat(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2713
bfa_ioc_mbox_poll(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2717
bfa_nw_ioc_error_isr(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2719
bfa_ioc_stats(ioc, ioc_hbfails);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2720
bfa_ioc_stats_hb_count(ioc, ioc->hb_count);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2721
bfa_fsm_send_event(ioc, IOC_E_HWERROR);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2726
bfa_nw_ioc_is_disabled(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2728
return bfa_fsm_cmp_state(ioc, bfa_ioc_sm_disabling) ||
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2729
bfa_fsm_cmp_state(ioc, bfa_ioc_sm_disabled);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2734
bfa_nw_ioc_is_operational(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2736
return bfa_fsm_cmp_state(ioc, bfa_ioc_sm_op);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
274
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2743
bfa_nw_ioc_notify_register(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2746
list_add_tail(&notify->qe, &ioc->notify_q);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
275
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2751
bfa_ioc_get_adapter_attr(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2756
ioc_attr = ioc->attr;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2758
bfa_ioc_get_adapter_serial_num(ioc, ad_attr->serial_num);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2759
bfa_ioc_get_adapter_fw_ver(ioc, ad_attr->fw_ver);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2760
bfa_ioc_get_adapter_optrom_ver(ioc, ad_attr->optrom_ver);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2761
bfa_ioc_get_adapter_manufacturer(ioc, ad_attr->manufacturer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2765
ad_attr->nports = bfa_ioc_get_nports(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2766
ad_attr->max_speed = bfa_ioc_speed_sup(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2768
bfa_ioc_get_adapter_model(ioc, ad_attr->model);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
277
bfa_iocpf_initfail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2770
bfa_ioc_get_adapter_model(ioc, ad_attr->model_descr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2780
ad_attr->pwwn = bfa_ioc_get_pwwn(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2781
bfa_nw_ioc_get_mac(ioc, ad_attr->mac);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2788
bfa_ioc_get_pci_chip_rev(ioc, ad_attr->hw_ver);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2792
bfa_ioc_get_type(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2794
if (ioc->clscode == BFI_PCIFN_CLASS_ETH)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2797
BUG_ON(!(ioc->clscode == BFI_PCIFN_CLASS_FC));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2799
return (ioc->attr->port_mode == BFI_PORT_MODE_FC)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2804
bfa_ioc_get_adapter_serial_num(struct bfa_ioc *ioc, char *serial_num)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2807
(void *)ioc->attr->brcd_serialnum,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
281
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2812
bfa_ioc_get_adapter_fw_ver(struct bfa_ioc *ioc, char *fw_ver)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2814
memcpy(fw_ver, ioc->attr->fw_version, BFA_VERSION_LEN);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2818
bfa_ioc_get_pci_chip_rev(struct bfa_ioc *ioc, char *chip_rev)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
282
bfa_fsm_set_state(ioc, bfa_ioc_sm_hwfail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2828
chip_rev[4] = ioc->attr->asic_rev;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2833
bfa_ioc_get_adapter_optrom_ver(struct bfa_ioc *ioc, char *optrom_ver)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2835
memcpy(optrom_ver, ioc->attr->optrom_version,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2840
bfa_ioc_get_adapter_manufacturer(struct bfa_ioc *ioc, char *manufacturer)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2846
bfa_ioc_get_adapter_model(struct bfa_ioc *ioc, char *model)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2853
ioc_attr = ioc->attr;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
286
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2860
bfa_ioc_get_state(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2863
enum bfa_ioc_state ioc_st = ioc_sm_to_state(ioc_sm_table, ioc->fsm);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2868
iocpf_st = iocpf_sm_to_state(iocpf_sm_table, ioc->iocpf.fsm);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2899
bfa_nw_ioc_get_attr(struct bfa_ioc *ioc, struct bfa_ioc_attr *ioc_attr)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
290
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2903
ioc_attr->state = bfa_ioc_get_state(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2904
ioc_attr->port_id = bfa_ioc_portid(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2905
ioc_attr->port_mode = ioc->port_mode;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2907
ioc_attr->port_mode_cfg = ioc->port_mode_cfg;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2908
ioc_attr->cap_bm = ioc->ad_cap_bm;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
291
bfa_iocpf_stop(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2910
ioc_attr->ioc_type = bfa_ioc_get_type(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2912
bfa_ioc_get_adapter_attr(ioc, &ioc_attr->adapter_attr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2914
ioc_attr->pci_attr.device_id = bfa_ioc_devid(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2915
ioc_attr->pci_attr.pcifn = bfa_ioc_pcifn(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2916
ioc_attr->def_fn = bfa_ioc_is_default(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2917
bfa_ioc_get_pci_chip_rev(ioc, ioc_attr->pci_attr.chip_rev);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2922
bfa_ioc_get_pwwn(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2924
return ioc->attr->pwwn;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2928
bfa_nw_ioc_get_mac(struct bfa_ioc *ioc, u8 *mac)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2930
ether_addr_copy(mac, ioc->attr->mac);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2935
bfa_ioc_recover(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2938
bfa_ioc_stats(ioc, ioc_hbfails);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2939
bfa_ioc_stats_hb_count(ioc, ioc->hb_count);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2940
bfa_fsm_send_event(ioc, IOC_E_HBFAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2946
bfa_iocpf_enable(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2948
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_ENABLE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2952
bfa_iocpf_disable(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2954
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_DISABLE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2958
bfa_iocpf_fail(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2960
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2964
bfa_iocpf_initfail(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2966
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_INITFAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2970
bfa_iocpf_getattrfail(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2972
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_GETATTRFAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2976
bfa_iocpf_stop(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2978
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_STOP);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2982
bfa_nw_iocpf_timeout(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2986
iocpf_st = iocpf_sm_to_state(iocpf_sm_table, ioc->iocpf.fsm);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2989
bfa_ioc_poll_fwinit(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2991
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2995
bfa_nw_iocpf_sem_timeout(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
2997
bfa_ioc_hw_sem_get(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3001
bfa_ioc_poll_fwinit(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3003
u32 fwstate = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3006
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FWREADY);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3010
if (ioc->iocpf.poll_time >= BFA_IOC_TOV) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3011
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3013
ioc->iocpf.poll_time += BFA_IOC_POLL_TOV;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3014
mod_timer(&ioc->iocpf_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
304
bfa_ioc_sm_getattr_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
306
mod_timer(&ioc->ioc_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
308
bfa_ioc_send_getattr(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3080
bfa_ioc_portid(flash->ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3083
bfa_nw_ioc_mbox_queue(flash->ioc, &flash->mb, NULL, NULL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3109
bfa_ioc_portid(flash->ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3111
bfa_nw_ioc_mbox_queue(flash->ioc, &flash->mb, NULL, NULL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
313
bfa_ioc_sm_getattr(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
317
timer_delete(&ioc->ioc_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
318
bfa_fsm_set_state(ioc, bfa_ioc_sm_op);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3219
bfa_nw_flash_attach(struct bfa_flash *flash, struct bfa_ioc *ioc, void *dev)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3221
flash->ioc = ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3226
bfa_nw_ioc_mbox_regisr(flash->ioc, BFI_MC_FLASH, bfa_flash_intr, flash);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3228
list_add_tail(&flash->ioc_notify.qe, &flash->ioc->notify_q);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
323
timer_delete(&ioc->ioc_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
326
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3265
if (!bfa_nw_ioc_is_operational(flash->ioc))
drivers/net/ethernet/brocade/bna/bfa_ioc.c
327
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3277
bfa_ioc_portid(flash->ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3279
bfa_nw_ioc_mbox_queue(flash->ioc, &flash->mb, NULL, NULL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
329
bfa_iocpf_getattrfail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3303
if (!bfa_nw_ioc_is_operational(flash->ioc))
drivers/net/ethernet/brocade/bna/bfa_ioc.c
333
timer_delete(&ioc->ioc_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
334
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
3352
if (!bfa_nw_ioc_is_operational(flash->ioc))
drivers/net/ethernet/brocade/bna/bfa_ioc.c
346
bfa_ioc_sm_op_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
348
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_OK);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
349
bfa_ioc_event_notify(ioc, BFA_IOC_E_ENABLED);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
350
bfa_ioc_hb_monitor(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
354
bfa_ioc_sm_op(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
361
bfa_ioc_hb_stop(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
362
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
367
bfa_ioc_hb_stop(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
371
if (ioc->iocpf.auto_recover)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
372
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail_retry);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
374
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
376
bfa_ioc_fail_notify(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
379
bfa_iocpf_fail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
388
bfa_ioc_sm_disabling_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
390
bfa_iocpf_disable(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
395
bfa_ioc_sm_disabling(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
399
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabled);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
408
bfa_iocpf_fail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
412
bfa_fsm_set_state(ioc, bfa_ioc_sm_hwfail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
413
bfa_ioc_disable_comp(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
423
bfa_ioc_sm_disabled_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
425
bfa_ioc_disable_comp(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
429
bfa_ioc_sm_disabled(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
433
bfa_fsm_set_state(ioc, bfa_ioc_sm_enabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
437
ioc->cbfn->disable_cbfn(ioc->bfa);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
441
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
442
bfa_iocpf_stop(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
451
bfa_ioc_sm_fail_retry_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
457
bfa_ioc_sm_fail_retry(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
461
bfa_fsm_set_state(ioc, bfa_ioc_sm_getattr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
469
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
470
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
472
bfa_iocpf_initfail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
476
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
477
bfa_fsm_set_state(ioc, bfa_ioc_sm_hwfail);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
484
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
488
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
489
bfa_iocpf_stop(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
498
bfa_ioc_sm_fail_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
50
static void bfa_ioc_hw_sem_init(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
504
bfa_ioc_sm_fail(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
508
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
51
static void bfa_ioc_hw_sem_get(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
512
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
516
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
517
bfa_iocpf_stop(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
52
static void bfa_ioc_hw_sem_get_cancel(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
53
static void bfa_ioc_hwinit(struct bfa_ioc *ioc, bool force);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
530
bfa_ioc_sm_hwfail_entry(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
536
bfa_ioc_sm_hwfail(struct bfa_ioc *ioc, enum ioc_event event)
drivers/net/ethernet/brocade/bna/bfa_ioc.c
54
static void bfa_ioc_poll_fwinit(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
541
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
545
ioc->cbfn->disable_cbfn(ioc->bfa);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
549
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
55
static void bfa_ioc_send_enable(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
56
static void bfa_ioc_send_disable(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
57
static void bfa_ioc_send_getattr(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
58
static void bfa_ioc_hb_monitor(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
588
bfa_ioc_hw_sem_init(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
589
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
59
static void bfa_ioc_hb_stop(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
596
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
60
static void bfa_ioc_reset(struct bfa_ioc *ioc, bool force);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
600
if (bfa_ioc_firmware_lock(ioc)) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
601
if (bfa_ioc_sync_start(ioc)) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
602
bfa_ioc_sync_join(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
605
bfa_ioc_firmware_unlock(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
606
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
607
mod_timer(&ioc->sem_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
61
static void bfa_ioc_mbox_poll(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
611
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
618
bfa_ioc_pf_hwfailed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
62
static void bfa_ioc_mbox_flush(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
622
bfa_ioc_hw_sem_get_cancel(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
624
bfa_ioc_pf_disabled(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
628
bfa_ioc_hw_sem_get_cancel(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
63
static void bfa_ioc_recover(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
643
bfa_ioc_pf_fwmismatch(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
646
mod_timer(&(iocpf->ioc)->iocpf_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
65
static void bfa_ioc_disable_comp(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
654
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
66
static void bfa_ioc_lpu_stop(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
662
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
664
bfa_ioc_pf_disabled(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
668
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
67
static void bfa_nw_ioc_debug_save_ftrc(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
68
static void bfa_ioc_fail_notify(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
681
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
688
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
69
static void bfa_ioc_pf_enabled(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
692
if (bfa_ioc_sync_complete(ioc)) {
drivers/net/ethernet/brocade/bna/bfa_ioc.c
693
bfa_ioc_sync_join(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
696
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
697
mod_timer(&ioc->sem_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
70
static void bfa_ioc_pf_disabled(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
704
bfa_ioc_pf_hwfailed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
708
bfa_ioc_hw_sem_get_cancel(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
71
static void bfa_ioc_pf_failed(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
72
static void bfa_ioc_pf_hwfailed(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
721
bfa_ioc_reset(iocpf->ioc, false);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
73
static void bfa_ioc_pf_fwmismatch(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
730
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
738
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
739
bfa_ioc_pf_failed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
74
static enum bfa_status bfa_ioc_boot(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
744
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
745
bfa_ioc_sync_leave(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
746
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
758
mod_timer(&(iocpf->ioc)->iocpf_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
76
static u32 bfa_ioc_smem_pgnum(struct bfa_ioc *ioc, u32 fmaddr);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
763
iocpf->ioc->cbfn->reset_cbfn(iocpf->ioc->bfa);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
764
bfa_ioc_send_enable(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
77
static void bfa_ioc_get_adapter_serial_num(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
773
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
777
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
778
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
783
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
787
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
789
bfa_ioc_pf_failed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
79
static void bfa_ioc_get_adapter_fw_ver(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
794
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
795
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
807
bfa_ioc_pf_enabled(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
81
static void bfa_ioc_get_pci_chip_rev(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
83
static void bfa_ioc_get_adapter_optrom_ver(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
834
mod_timer(&(iocpf->ioc)->iocpf_timer, jiffies +
drivers/net/ethernet/brocade/bna/bfa_ioc.c
836
bfa_ioc_send_disable(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
843
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
847
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
85
static void bfa_ioc_get_adapter_manufacturer(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.c
852
timer_delete(&ioc->iocpf_timer);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
856
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
87
static void bfa_ioc_get_adapter_model(struct bfa_ioc *ioc, char *model);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
871
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
878
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
88
static u64 bfa_ioc_get_pwwn(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
882
bfa_ioc_sync_leave(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
883
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
889
bfa_ioc_pf_hwfailed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
904
bfa_ioc_mbox_flush(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
905
bfa_ioc_pf_disabled(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
911
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
919
bfa_ioc_firmware_unlock(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
931
bfa_nw_ioc_debug_save_ftrc(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
932
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
939
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
943
bfa_ioc_notify_fail(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
944
bfa_ioc_sync_leave(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
945
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
946
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
952
bfa_ioc_pf_hwfailed(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
956
bfa_ioc_hw_sem_get_cancel(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
961
bfa_ioc_hw_sem_get_cancel(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
962
bfa_ioc_firmware_unlock(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.c
983
struct bfa_ioc *ioc = iocpf->ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.c
991
bfa_ioc_firmware_unlock(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
154
struct bfa_ioc *ioc;
drivers/net/ethernet/brocade/bna/bfa_ioc.h
201
bool (*ioc_firmware_lock) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
202
void (*ioc_firmware_unlock) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
203
void (*ioc_reg_init) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
204
void (*ioc_map_port) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
205
void (*ioc_isr_mode_set) (struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
207
void (*ioc_notify_fail) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
208
void (*ioc_ownership_reset) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
209
bool (*ioc_sync_start) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
210
void (*ioc_sync_join) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
211
void (*ioc_sync_leave) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
212
void (*ioc_sync_ack) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
213
bool (*ioc_sync_complete) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
214
bool (*ioc_lpu_read_stat) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
215
void (*ioc_set_fwstate) (struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
217
enum bfi_ioc_state (*ioc_get_fwstate) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
218
void (*ioc_set_alt_fwstate) (struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
220
enum bfi_ioc_state (*ioc_get_alt_fwstate) (struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
248
bool bfa_nw_ioc_mbox_queue(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
251
void bfa_nw_ioc_mbox_isr(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
252
void bfa_nw_ioc_mbox_regisr(struct bfa_ioc *ioc, enum bfi_mclass mc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
266
void bfa_nw_ioc_set_ct_hwif(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
267
void bfa_nw_ioc_set_ct2_hwif(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
268
void bfa_nw_ioc_ct2_poweron(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
270
void bfa_nw_ioc_attach(struct bfa_ioc *ioc, void *bfa,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
273
void bfa_nw_ioc_detach(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
274
void bfa_nw_ioc_pci_init(struct bfa_ioc *ioc, struct bfa_pcidev *pcidev,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
277
void bfa_nw_ioc_mem_claim(struct bfa_ioc *ioc, u8 *dm_kva, u64 dm_pa);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
278
void bfa_nw_ioc_enable(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
279
void bfa_nw_ioc_disable(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
281
void bfa_nw_ioc_error_isr(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
282
bool bfa_nw_ioc_is_disabled(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
283
bool bfa_nw_ioc_is_operational(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
284
void bfa_nw_ioc_get_attr(struct bfa_ioc *ioc, struct bfa_ioc_attr *ioc_attr);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
285
enum bfa_status bfa_nw_ioc_fwsig_invalidate(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
286
void bfa_nw_ioc_notify_register(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
290
void bfa_nw_ioc_hw_sem_release(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
291
void bfa_nw_ioc_fwver_get(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
293
bool bfa_nw_ioc_fwver_cmp(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc.h
295
void bfa_nw_ioc_get_mac(struct bfa_ioc *ioc, u8 *mac);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
296
void bfa_nw_ioc_debug_memclaim(struct bfa_ioc *ioc, void *dbg_fwsave);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
297
int bfa_nw_ioc_debug_fwtrc(struct bfa_ioc *ioc, void *trcdata, int *trclen);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
298
int bfa_nw_ioc_debug_fwsave(struct bfa_ioc *ioc, void *trcdata, int *trclen);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
303
void bfa_nw_ioc_timeout(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
304
void bfa_nw_ioc_hb_check(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
305
void bfa_nw_iocpf_timeout(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
306
void bfa_nw_iocpf_sem_timeout(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc.h
320
struct bfa_ioc *ioc; /* back pointer to ioc */
drivers/net/ethernet/brocade/bna/bfa_ioc.h
349
struct bfa_ioc *ioc, void *dev);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
100
ioc->ioc_hwif = &nw_hwif_ct;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
104
bfa_nw_ioc_set_ct2_hwif(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
106
ioc->ioc_hwif = &nw_hwif_ct2;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
111
bfa_ioc_ct_firmware_lock(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
120
if (bfa_cb_image_get_size(bfa_ioc_asic_gen(ioc)) <
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
124
bfa_nw_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
125
usecnt = readl(ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
131
writel(1, ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
132
bfa_nw_ioc_sem_release(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
133
writel(0, ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
137
ioc_fwstate = readl(ioc->ioc_regs.ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
147
bfa_nw_ioc_fwver_get(ioc, &fwhdr);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
148
if (!bfa_nw_ioc_fwver_cmp(ioc, &fwhdr)) {
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
149
bfa_nw_ioc_sem_release(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
157
writel(usecnt, ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
158
bfa_nw_ioc_sem_release(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
163
bfa_ioc_ct_firmware_unlock(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
170
if (bfa_cb_image_get_size(bfa_ioc_asic_gen(ioc)) <
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
177
bfa_nw_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
178
usecnt = readl(ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
182
writel(usecnt, ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
184
bfa_nw_ioc_sem_release(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
189
bfa_ioc_ct_notify_fail(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
191
writel(__FW_INIT_HALT_P, ioc->ioc_regs.ll_halt);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
192
writel(__FW_INIT_HALT_P, ioc->ioc_regs.alt_ll_halt);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
194
readl(ioc->ioc_regs.ll_halt);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
195
readl(ioc->ioc_regs.alt_ll_halt);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
249
bfa_ioc_ct_reg_init(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
252
int pcifn = bfa_ioc_pcifn(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
254
rb = bfa_ioc_bar0(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
256
ioc->ioc_regs.hfn_mbox = rb + ct_fnreg[pcifn].hfn_mbox;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
257
ioc->ioc_regs.lpu_mbox = rb + ct_fnreg[pcifn].lpu_mbox;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
258
ioc->ioc_regs.host_page_num_fn = rb + ct_fnreg[pcifn].hfn_pgn;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
260
if (ioc->port_id == 0) {
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
261
ioc->ioc_regs.heartbeat = rb + BFA_IOC0_HBEAT_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
262
ioc->ioc_regs.ioc_fwstate = rb + BFA_IOC0_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
263
ioc->ioc_regs.alt_ioc_fwstate = rb + BFA_IOC1_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
264
ioc->ioc_regs.hfn_mbox_cmd = rb + ct_p0reg[pcifn].hfn;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
265
ioc->ioc_regs.lpu_mbox_cmd = rb + ct_p0reg[pcifn].lpu;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
266
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P0;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
267
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P1;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
269
ioc->ioc_regs.heartbeat = rb + BFA_IOC1_HBEAT_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
270
ioc->ioc_regs.ioc_fwstate = rb + BFA_IOC1_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
271
ioc->ioc_regs.alt_ioc_fwstate = rb + BFA_IOC0_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
272
ioc->ioc_regs.hfn_mbox_cmd = rb + ct_p1reg[pcifn].hfn;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
273
ioc->ioc_regs.lpu_mbox_cmd = rb + ct_p1reg[pcifn].lpu;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
274
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P1;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
275
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P0;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
281
ioc->ioc_regs.pss_ctl_reg = rb + PSS_CTL_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
282
ioc->ioc_regs.pss_err_status_reg = rb + PSS_ERR_STATUS_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
283
ioc->ioc_regs.app_pll_fast_ctl_reg = rb + APP_PLL_LCLK_CTL_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
284
ioc->ioc_regs.app_pll_slow_ctl_reg = rb + APP_PLL_SCLK_CTL_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
289
ioc->ioc_regs.ioc_sem_reg = rb + HOST_SEM0_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
29
static bool bfa_ioc_ct_firmware_lock(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
290
ioc->ioc_regs.ioc_usage_sem_reg = rb + HOST_SEM1_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
291
ioc->ioc_regs.ioc_init_sem_reg = rb + HOST_SEM2_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
292
ioc->ioc_regs.ioc_usage_reg = rb + BFA_FW_USE_COUNT;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
293
ioc->ioc_regs.ioc_fail_sync = rb + BFA_IOC_FAIL_SYNC;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
298
ioc->ioc_regs.smem_page_start = rb + PSS_SMEM_PAGE_START;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
299
ioc->ioc_regs.smem_pg0 = BFI_IOC_SMEM_PG0_CT;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
30
static void bfa_ioc_ct_firmware_unlock(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
304
ioc->ioc_regs.err_set = (rb + ERR_SET_REG);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
308
bfa_ioc_ct2_reg_init(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
31
static void bfa_ioc_ct_reg_init(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
311
int port = bfa_ioc_portid(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
313
rb = bfa_ioc_bar0(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
315
ioc->ioc_regs.hfn_mbox = rb + ct2_reg[port].hfn_mbox;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
316
ioc->ioc_regs.lpu_mbox = rb + ct2_reg[port].lpu_mbox;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
317
ioc->ioc_regs.host_page_num_fn = rb + ct2_reg[port].hfn_pgn;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
318
ioc->ioc_regs.hfn_mbox_cmd = rb + ct2_reg[port].hfn;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
319
ioc->ioc_regs.lpu_mbox_cmd = rb + ct2_reg[port].lpu;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
32
static void bfa_ioc_ct2_reg_init(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
320
ioc->ioc_regs.lpu_read_stat = rb + ct2_reg[port].lpu_read;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
323
ioc->ioc_regs.heartbeat = rb + CT2_BFA_IOC0_HBEAT_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
324
ioc->ioc_regs.ioc_fwstate = rb + CT2_BFA_IOC0_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
325
ioc->ioc_regs.alt_ioc_fwstate = rb + CT2_BFA_IOC1_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
326
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P0;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
327
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P1;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
329
ioc->ioc_regs.heartbeat = rb + CT2_BFA_IOC1_HBEAT_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
33
static void bfa_ioc_ct_map_port(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
330
ioc->ioc_regs.ioc_fwstate = rb + CT2_BFA_IOC1_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
331
ioc->ioc_regs.alt_ioc_fwstate = rb + CT2_BFA_IOC0_STATE_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
332
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P1;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
333
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P0;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
339
ioc->ioc_regs.pss_ctl_reg = rb + PSS_CTL_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
34
static void bfa_ioc_ct2_map_port(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
340
ioc->ioc_regs.pss_err_status_reg = rb + PSS_ERR_STATUS_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
341
ioc->ioc_regs.app_pll_fast_ctl_reg = rb + CT2_APP_PLL_LCLK_CTL_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
342
ioc->ioc_regs.app_pll_slow_ctl_reg = rb + CT2_APP_PLL_SCLK_CTL_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
347
ioc->ioc_regs.ioc_sem_reg = rb + CT2_HOST_SEM0_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
348
ioc->ioc_regs.ioc_usage_sem_reg = rb + CT2_HOST_SEM1_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
349
ioc->ioc_regs.ioc_init_sem_reg = rb + CT2_HOST_SEM2_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
35
static void bfa_ioc_ct_isr_mode_set(struct bfa_ioc *ioc, bool msix);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
350
ioc->ioc_regs.ioc_usage_reg = rb + CT2_BFA_FW_USE_COUNT;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
351
ioc->ioc_regs.ioc_fail_sync = rb + CT2_BFA_IOC_FAIL_SYNC;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
356
ioc->ioc_regs.smem_page_start = rb + PSS_SMEM_PAGE_START;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
357
ioc->ioc_regs.smem_pg0 = BFI_IOC_SMEM_PG0_CT;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
36
static void bfa_ioc_ct_notify_fail(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
362
ioc->ioc_regs.err_set = rb + ERR_SET_REG;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
369
bfa_ioc_ct_map_port(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
37
static void bfa_ioc_ct_ownership_reset(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
371
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
378
r32 >>= FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc));
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
379
ioc->port_id = (r32 & __F0_PORT_MAP_MK) >> __F0_PORT_MAP_SH;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
38
static bool bfa_ioc_ct_sync_start(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
384
bfa_ioc_ct2_map_port(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
386
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
39
static void bfa_ioc_ct_sync_join(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
390
ioc->port_id = ((r32 & __FC_LL_PORT_MAP__MK) >> __FC_LL_PORT_MAP__SH);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
395
bfa_ioc_ct_isr_mode_set(struct bfa_ioc *ioc, bool msix)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
397
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
40
static void bfa_ioc_ct_sync_leave(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
402
mode = (r32 >> FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc))) &
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
41
static void bfa_ioc_ct_sync_ack(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
416
r32 &= ~(__F0_INTX_STATUS << FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc)));
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
417
r32 |= (mode << FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc)));
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
42
static bool bfa_ioc_ct_sync_complete(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
423
bfa_ioc_ct2_lpu_read_stat(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
427
r32 = readl(ioc->ioc_regs.lpu_read_stat);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
429
writel(1, ioc->ioc_regs.lpu_read_stat);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
44
struct bfa_ioc *ioc, enum bfi_ioc_state fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
445
bfa_nw_ioc_ct2_poweron(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
447
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
45
static enum bfi_ioc_state bfa_ioc_ct_get_cur_ioc_fwstate(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
458
HOSTFN_MSIX_DEFAULT * bfa_ioc_pcifn(ioc),
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
460
writel(HOSTFN_MSIX_DEFAULT * bfa_ioc_pcifn(ioc),
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
466
bfa_ioc_ct_ownership_reset(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
468
bfa_nw_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
469
writel(0, ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
47
struct bfa_ioc *ioc, enum bfi_ioc_state fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
470
bfa_nw_ioc_sem_release(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
477
readl(ioc->ioc_regs.ioc_sem_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
478
bfa_nw_ioc_hw_sem_release(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
48
static enum bfi_ioc_state bfa_ioc_ct_get_alt_ioc_fwstate(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
483
bfa_ioc_ct_sync_start(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
485
u32 r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
495
if (sync_reqd & bfa_ioc_ct_sync_pos(ioc)) {
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
496
writel(0, ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
497
writel(1, ioc->ioc_regs.ioc_usage_reg);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
498
writel(BFI_IOC_UNINIT, ioc->ioc_regs.ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
499
writel(BFI_IOC_UNINIT, ioc->ioc_regs.alt_ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
503
return bfa_ioc_ct_sync_complete(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
507
bfa_ioc_ct_sync_join(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
509
u32 r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
510
u32 sync_pos = bfa_ioc_ct_sync_reqd_pos(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
512
writel((r32 | sync_pos), ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
516
bfa_ioc_ct_sync_leave(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
518
u32 r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
519
u32 sync_msk = bfa_ioc_ct_sync_reqd_pos(ioc) |
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
520
bfa_ioc_ct_sync_pos(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
522
writel((r32 & ~sync_msk), ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
526
bfa_ioc_ct_sync_ack(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
528
u32 r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
53
static bool bfa_ioc_ct2_lpu_read_stat(struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
530
writel(r32 | bfa_ioc_ct_sync_pos(ioc), ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
534
bfa_ioc_ct_sync_complete(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
536
u32 r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
551
if ((sync_reqd & bfa_ioc_ct_sync_pos(ioc)) &&
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
552
!(sync_ackd & bfa_ioc_ct_sync_pos(ioc)))
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
553
sync_ackd |= bfa_ioc_ct_sync_pos(ioc);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
557
ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
558
writel(BFI_IOC_FAIL, ioc->ioc_regs.ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
559
writel(BFI_IOC_FAIL, ioc->ioc_regs.alt_ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
569
writel((r32 | sync_ackd), ioc->ioc_regs.ioc_fail_sync);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
575
bfa_ioc_ct_set_cur_ioc_fwstate(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
578
writel(fwstate, ioc->ioc_regs.ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
582
bfa_ioc_ct_get_cur_ioc_fwstate(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
584
return (enum bfi_ioc_state)readl(ioc->ioc_regs.ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
588
bfa_ioc_ct_set_alt_ioc_fwstate(struct bfa_ioc *ioc,
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
591
writel(fwstate, ioc->ioc_regs.alt_ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
595
bfa_ioc_ct_get_alt_ioc_fwstate(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
597
return (enum bfi_ioc_state)readl(ioc->ioc_regs.alt_ioc_fwstate);
drivers/net/ethernet/brocade/bna/bfa_ioc_ct.c
98
bfa_nw_ioc_set_ct_hwif(struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_msgq.c
195
if (!bfa_nw_ioc_mbox_queue(cmdq->msgq->ioc, &cmdq->dbell_mb,
drivers/net/ethernet/brocade/bna/bfa_msgq.c
294
if (!bfa_nw_ioc_mbox_queue(cmdq->msgq->ioc, &cmdq->copy_mb,
drivers/net/ethernet/brocade/bna/bfa_msgq.c
403
if (!bfa_nw_ioc_is_disabled(rspq->msgq->ioc))
drivers/net/ethernet/brocade/bna/bfa_msgq.c
451
if (!bfa_nw_ioc_mbox_queue(rspq->msgq->ioc, &rspq->dbell_mb,
drivers/net/ethernet/brocade/bna/bfa_msgq.c
520
bfa_nw_ioc_mbox_queue(msgq->ioc, &msgq->init_mb, NULL, NULL);
drivers/net/ethernet/brocade/bna/bfa_msgq.c
601
bfa_msgq_attach(struct bfa_msgq *msgq, struct bfa_ioc *ioc)
drivers/net/ethernet/brocade/bna/bfa_msgq.c
603
msgq->ioc = ioc;
drivers/net/ethernet/brocade/bna/bfa_msgq.c
608
bfa_nw_ioc_mbox_regisr(msgq->ioc, BFI_MC_MSGQ, bfa_msgq_isr, msgq);
drivers/net/ethernet/brocade/bna/bfa_msgq.c
610
bfa_nw_ioc_notify_register(msgq->ioc, &msgq->ioc_notify);
drivers/net/ethernet/brocade/bna/bfa_msgq.h
115
struct bfa_ioc *ioc;
drivers/net/ethernet/brocade/bna/bfa_msgq.h
120
void bfa_msgq_attach(struct bfa_msgq *msgq, struct bfa_ioc *ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1309
bfa_nw_ioc_get_mac(&enet->bna->ioceth.ioc, mac);
drivers/net/ethernet/brocade/bna/bna_enet.c
1394
bfa_nw_ioc_enable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1431
bfa_nw_ioc_disable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1522
bfa_nw_ioc_disable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1527
bfa_nw_ioc_disable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1552
bfa_nw_ioc_disable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1557
bfa_nw_ioc_disable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1603
bfa_nw_ioc_disable(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1701
bfa_nw_ioc_attach(&ioceth->ioc, ioceth, &bna_ioceth_cbfn);
drivers/net/ethernet/brocade/bna/bna_enet.c
1702
bfa_nw_ioc_pci_init(&ioceth->ioc, &bna->pcidev, BFI_PCIFN_CLASS_ETH);
drivers/net/ethernet/brocade/bna/bna_enet.c
1707
bfa_nw_ioc_mem_claim(&ioceth->ioc, kva, dma);
drivers/net/ethernet/brocade/bna/bna_enet.c
1710
bfa_nw_ioc_debug_memclaim(&ioceth->ioc, kva);
drivers/net/ethernet/brocade/bna/bna_enet.c
1719
bfa_nw_cee_attach(&bna->cee, &ioceth->ioc, bna);
drivers/net/ethernet/brocade/bna/bna_enet.c
1724
bfa_nw_flash_attach(&bna->flash, &ioceth->ioc, bna);
drivers/net/ethernet/brocade/bna/bna_enet.c
1729
bfa_msgq_attach(&bna->msgq, &ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
1746
bfa_nw_ioc_detach(&ioceth->ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
258
bfa_nw_ioc_error_isr(&bna->ioceth.ioc);
drivers/net/ethernet/brocade/bna/bna_enet.c
269
bfa_nw_ioc_mbox_isr(&bna->ioceth.ioc);
drivers/net/ethernet/brocade/bna/bna_hw_defs.h
132
#define bna_port_id_get(_bna) ((_bna)->ioceth.ioc.port_id)
drivers/net/ethernet/brocade/bna/bna_hw_defs.h
157
init_halt = readl((_bna)->ioceth.ioc.ioc_regs.ll_halt); \
drivers/net/ethernet/brocade/bna/bna_hw_defs.h
159
writel(init_halt, (_bna)->ioceth.ioc.ioc_regs.ll_halt); \
drivers/net/ethernet/brocade/bna/bna_hw_defs.h
160
init_halt = readl((_bna)->ioceth.ioc.ioc_regs.ll_halt); \
drivers/net/ethernet/brocade/bna/bna_types.h
319
struct bfa_ioc ioc;
drivers/net/ethernet/brocade/bna/bnad.c
1689
bna.ioceth.ioc.ioc_timer);
drivers/net/ethernet/brocade/bna/bnad.c
1693
bfa_nw_ioc_timeout(&bnad->bna.ioceth.ioc);
drivers/net/ethernet/brocade/bna/bnad.c
1701
bna.ioceth.ioc.hb_timer);
drivers/net/ethernet/brocade/bna/bnad.c
1705
bfa_nw_ioc_hb_check(&bnad->bna.ioceth.ioc);
drivers/net/ethernet/brocade/bna/bnad.c
1713
bna.ioceth.ioc.iocpf_timer);
drivers/net/ethernet/brocade/bna/bnad.c
1717
bfa_nw_iocpf_timeout(&bnad->bna.ioceth.ioc);
drivers/net/ethernet/brocade/bna/bnad.c
1725
bna.ioceth.ioc.sem_timer);
drivers/net/ethernet/brocade/bna/bnad.c
1729
bfa_nw_iocpf_sem_timeout(&bnad->bna.ioceth.ioc);
drivers/net/ethernet/brocade/bna/bnad.c
3659
timer_setup(&bnad->bna.ioceth.ioc.ioc_timer, bnad_ioc_timeout, 0);
drivers/net/ethernet/brocade/bna/bnad.c
3660
timer_setup(&bnad->bna.ioceth.ioc.hb_timer, bnad_ioc_hb_check, 0);
drivers/net/ethernet/brocade/bna/bnad.c
3661
timer_setup(&bnad->bna.ioceth.ioc.iocpf_timer, bnad_iocpf_timeout, 0);
drivers/net/ethernet/brocade/bna/bnad.c
3662
timer_setup(&bnad->bna.ioceth.ioc.sem_timer, bnad_iocpf_sem_timeout,
drivers/net/ethernet/brocade/bna/bnad.c
3730
timer_delete_sync(&bnad->bna.ioceth.ioc.ioc_timer);
drivers/net/ethernet/brocade/bna/bnad.c
3731
timer_delete_sync(&bnad->bna.ioceth.ioc.sem_timer);
drivers/net/ethernet/brocade/bna/bnad.c
3732
timer_delete_sync(&bnad->bna.ioceth.ioc.hb_timer);
drivers/net/ethernet/brocade/bna/bnad.c
3773
timer_delete_sync(&bnad->bna.ioceth.ioc.ioc_timer);
drivers/net/ethernet/brocade/bna/bnad.c
3774
timer_delete_sync(&bnad->bna.ioceth.ioc.sem_timer);
drivers/net/ethernet/brocade/bna/bnad.c
3775
timer_delete_sync(&bnad->bna.ioceth.ioc.hb_timer);
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
102
rc = bfa_nw_ioc_debug_fwsave(&bnad->bna.ioceth.ioc,
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
146
bfa_nw_ioc_get_attr(&bnad->bna.ioceth.ioc, &drvinfo->ioc_attr);
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
255
bna_reg_offset_check(struct bfa_ioc *ioc, u32 offset, u32 len)
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
271
if (offset + (len << 2) > BFA_REG_ADDRMSK(ioc))
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
306
struct bfa_ioc *ioc = &bnad->bna.ioceth.ioc;
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
335
rb = bfa_ioc_bar0(ioc);
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
336
addr &= BFA_REG_ADDRMSK(ioc);
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
339
rc = bna_reg_offset_check(ioc, addr, len);
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
367
struct bfa_ioc *ioc = &bnad->bna.ioceth.ioc;
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
387
addr &= BFA_REG_ADDRMSK(ioc); /* offset only 17 bit and word align */
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
390
rc = bna_reg_offset_check(ioc, addr, 1);
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
396
reg_addr = (bfa_ioc_bar0(ioc)) + addr;
drivers/net/ethernet/brocade/bna/bnad_debugfs.c
62
rc = bfa_nw_ioc_debug_fwtrc(&bnad->bna.ioceth.ioc,
drivers/net/ethernet/brocade/bna/bnad_ethtool.c
291
bfa_nw_ioc_get_attr(&bnad->bna.ioceth.ioc, ioc_attr);
drivers/net/fddi/skfp/skfddi.c
965
struct s_skfp_ioctl ioc;
drivers/net/fddi/skfp/skfddi.c
968
if (copy_from_user(&ioc, data, sizeof(struct s_skfp_ioctl)))
drivers/net/fddi/skfp/skfddi.c
974
switch (ioc.cmd) {
drivers/net/fddi/skfp/skfddi.c
976
ioc.len = sizeof(lp->MacStat);
drivers/net/fddi/skfp/skfddi.c
977
status = copy_to_user(ioc.data, skfp_ctl_get_stats(dev), ioc.len)
drivers/net/fddi/skfp/skfddi.c
988
printk("ioctl for %s: unknown cmd: %04x\n", dev->name, ioc.cmd);
drivers/parisc/ccio-dma.c
1001
ioc->usg_calls++;
drivers/parisc/ccio-dma.c
1007
ioc->usg_pages += sg_dma_len(sglist) >> PAGE_SHIFT;
drivers/parisc/ccio-dma.c
1034
struct ioc *ioc = ioc_list;
drivers/parisc/ccio-dma.c
1036
while (ioc != NULL) {
drivers/parisc/ccio-dma.c
1037
unsigned int total_pages = ioc->res_size << 3;
drivers/parisc/ccio-dma.c
1043
seq_printf(m, "%s\n", ioc->name);
drivers/parisc/ccio-dma.c
1046
(ioc->cujo20_bug ? "yes" : "no"));
drivers/parisc/ccio-dma.c
1053
total_pages - ioc->used_pages, ioc->used_pages,
drivers/parisc/ccio-dma.c
1054
(int)(ioc->used_pages * 100 / total_pages));
drivers/parisc/ccio-dma.c
1058
ioc->res_size, total_pages);
drivers/parisc/ccio-dma.c
1061
min = max = ioc->avg_search[0];
drivers/parisc/ccio-dma.c
1063
avg += ioc->avg_search[j];
drivers/parisc/ccio-dma.c
1064
if(ioc->avg_search[j] > max)
drivers/parisc/ccio-dma.c
1065
max = ioc->avg_search[j];
drivers/parisc/ccio-dma.c
1066
if(ioc->avg_search[j] < min)
drivers/parisc/ccio-dma.c
1067
min = ioc->avg_search[j];
drivers/parisc/ccio-dma.c
1074
ioc->msingle_calls, ioc->msingle_pages,
drivers/parisc/ccio-dma.c
1075
(int)((ioc->msingle_pages * 1000)/ioc->msingle_calls));
drivers/parisc/ccio-dma.c
1078
min = ioc->usingle_calls - ioc->usg_calls;
drivers/parisc/ccio-dma.c
1079
max = ioc->usingle_pages - ioc->usg_pages;
drivers/parisc/ccio-dma.c
1084
ioc->msg_calls, ioc->msg_pages,
drivers/parisc/ccio-dma.c
1085
(int)((ioc->msg_pages * 1000)/ioc->msg_calls));
drivers/parisc/ccio-dma.c
1088
ioc->usg_calls, ioc->usg_pages,
drivers/parisc/ccio-dma.c
1089
(int)((ioc->usg_pages * 1000)/ioc->usg_calls));
drivers/parisc/ccio-dma.c
1092
ioc = ioc->next;
drivers/parisc/ccio-dma.c
1100
struct ioc *ioc = ioc_list;
drivers/parisc/ccio-dma.c
1102
while (ioc != NULL) {
drivers/parisc/ccio-dma.c
1103
seq_hex_dump(m, " ", DUMP_PREFIX_NONE, 32, 4, ioc->res_map,
drivers/parisc/ccio-dma.c
1104
ioc->res_size, false);
drivers/parisc/ccio-dma.c
1106
ioc = ioc->next;
drivers/parisc/ccio-dma.c
1121
static struct ioc * ccio_find_ioc(int hw_path)
drivers/parisc/ccio-dma.c
1124
struct ioc *ioc;
drivers/parisc/ccio-dma.c
1126
ioc = ioc_list;
drivers/parisc/ccio-dma.c
1128
if (ioc->hw_path == hw_path)
drivers/parisc/ccio-dma.c
1129
return ioc;
drivers/parisc/ccio-dma.c
1131
ioc = ioc->next;
drivers/parisc/ccio-dma.c
1163
struct ioc *ioc = ccio_get_iommu(dev);
drivers/parisc/ccio-dma.c
1166
ioc->cujo20_bug = 1;
drivers/parisc/ccio-dma.c
1167
res_ptr = ioc->res_map;
drivers/parisc/ccio-dma.c
1170
while (idx < ioc->res_size) {
drivers/parisc/ccio-dma.c
1228
ccio_ioc_init(struct ioc *ioc)
drivers/parisc/ccio-dma.c
1275
ioc->pdir_size = (iova_space_size / IOVP_SIZE) * sizeof(u64);
drivers/parisc/ccio-dma.c
1277
BUG_ON(ioc->pdir_size > 8 * 1024 * 1024); /* max pdir size <= 8MB */
drivers/parisc/ccio-dma.c
1280
BUG_ON((1 << get_order(ioc->pdir_size)) != (ioc->pdir_size >> PAGE_SHIFT));
drivers/parisc/ccio-dma.c
1283
__func__, ioc->ioc_regs,
drivers/parisc/ccio-dma.c
1288
ioc->pdir_base = (__le64 *)__get_free_pages(GFP_KERNEL,
drivers/parisc/ccio-dma.c
1289
get_order(ioc->pdir_size));
drivers/parisc/ccio-dma.c
1290
if(NULL == ioc->pdir_base) {
drivers/parisc/ccio-dma.c
1293
memset(ioc->pdir_base, 0, ioc->pdir_size);
drivers/parisc/ccio-dma.c
1295
BUG_ON((((unsigned long)ioc->pdir_base) & PAGE_MASK) != (unsigned long)ioc->pdir_base);
drivers/parisc/ccio-dma.c
1296
DBG_INIT(" base %p\n", ioc->pdir_base);
drivers/parisc/ccio-dma.c
1299
ioc->res_size = (ioc->pdir_size / sizeof(u64)) >> 3;
drivers/parisc/ccio-dma.c
1300
DBG_INIT("%s() res_size 0x%x\n", __func__, ioc->res_size);
drivers/parisc/ccio-dma.c
1302
ioc->res_map = (u8 *)__get_free_pages(GFP_KERNEL,
drivers/parisc/ccio-dma.c
1303
get_order(ioc->res_size));
drivers/parisc/ccio-dma.c
1304
if(NULL == ioc->res_map) {
drivers/parisc/ccio-dma.c
1307
memset(ioc->res_map, 0, ioc->res_size);
drivers/parisc/ccio-dma.c
1310
ioc->res_hint = 16;
drivers/parisc/ccio-dma.c
1313
spin_lock_init(&ioc->res_lock);
drivers/parisc/ccio-dma.c
1319
ioc->chainid_shift = get_order(iova_space_size) + PAGE_SHIFT - CCIO_CHAINID_SHIFT;
drivers/parisc/ccio-dma.c
1320
DBG_INIT(" chainid_shift 0x%x\n", ioc->chainid_shift);
drivers/parisc/ccio-dma.c
1325
WRITE_U32(CCIO_CHAINID_MASK << ioc->chainid_shift,
drivers/parisc/ccio-dma.c
1326
&ioc->ioc_regs->io_chain_id_mask);
drivers/parisc/ccio-dma.c
1328
WRITE_U32(virt_to_phys(ioc->pdir_base),
drivers/parisc/ccio-dma.c
1329
&ioc->ioc_regs->io_pdir_base);
drivers/parisc/ccio-dma.c
1334
WRITE_U32(IOA_NORMAL_MODE, &ioc->ioc_regs->io_control);
drivers/parisc/ccio-dma.c
1339
WRITE_U32(0, &ioc->ioc_regs->io_tlb_entry_m);
drivers/parisc/ccio-dma.c
1340
WRITE_U32(0, &ioc->ioc_regs->io_tlb_entry_l);
drivers/parisc/ccio-dma.c
1343
WRITE_U32((CMD_TLB_DIRECT_WRITE | (i << ioc->chainid_shift)),
drivers/parisc/ccio-dma.c
1344
&ioc->ioc_regs->io_command);
drivers/parisc/ccio-dma.c
1381
static int __init ccio_init_resources(struct ioc *ioc)
drivers/parisc/ccio-dma.c
1383
struct resource *res = ioc->mmio_region;
drivers/parisc/ccio-dma.c
1387
snprintf(name, 14, "GSC Bus [%d/]", ioc->hw_path);
drivers/parisc/ccio-dma.c
1389
ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low);
drivers/parisc/ccio-dma.c
1390
ccio_init_resource(res + 1, name, &ioc->ioc_regs->io_io_low_hv);
drivers/parisc/ccio-dma.c
1450
struct ioc *ioc = ccio_get_iommu(dev);
drivers/parisc/ccio-dma.c
1451
if (!ioc)
drivers/parisc/ccio-dma.c
1454
parent = ioc->mmio_region;
drivers/parisc/ccio-dma.c
1466
&ioc->ioc_regs->io_io_low);
drivers/parisc/ccio-dma.c
1468
&ioc->ioc_regs->io_io_high);
drivers/parisc/ccio-dma.c
1472
&ioc->ioc_regs->io_io_low_hv);
drivers/parisc/ccio-dma.c
1474
&ioc->ioc_regs->io_io_high_hv);
drivers/parisc/ccio-dma.c
1487
struct ioc *ioc = ccio_get_iommu(dev);
drivers/parisc/ccio-dma.c
1489
if (!ioc) {
drivers/parisc/ccio-dma.c
1491
} else if ((ioc->mmio_region->start <= res->start) &&
drivers/parisc/ccio-dma.c
1492
(res->end <= ioc->mmio_region->end)) {
drivers/parisc/ccio-dma.c
1493
parent = ioc->mmio_region;
drivers/parisc/ccio-dma.c
1494
} else if (((ioc->mmio_region + 1)->start <= res->start) &&
drivers/parisc/ccio-dma.c
1495
(res->end <= (ioc->mmio_region + 1)->end)) {
drivers/parisc/ccio-dma.c
1496
parent = ioc->mmio_region + 1;
drivers/parisc/ccio-dma.c
1520
struct ioc *ioc, **ioc_p = &ioc_list;
drivers/parisc/ccio-dma.c
1523
ioc = kzalloc_obj(struct ioc);
drivers/parisc/ccio-dma.c
1524
if (ioc == NULL) {
drivers/parisc/ccio-dma.c
1529
ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn";
drivers/parisc/ccio-dma.c
1531
printk(KERN_INFO "Found %s at 0x%lx\n", ioc->name,
drivers/parisc/ccio-dma.c
1537
*ioc_p = ioc;
drivers/parisc/ccio-dma.c
1539
ioc->hw_path = dev->hw_path;
drivers/parisc/ccio-dma.c
1540
ioc->ioc_regs = ioremap(dev->hpa.start, 4096);
drivers/parisc/ccio-dma.c
1541
if (!ioc->ioc_regs) {
drivers/parisc/ccio-dma.c
1542
kfree(ioc);
drivers/parisc/ccio-dma.c
1545
ccio_ioc_init(ioc);
drivers/parisc/ccio-dma.c
1546
if (ccio_init_resources(ioc)) {
drivers/parisc/ccio-dma.c
1547
iounmap(ioc->ioc_regs);
drivers/parisc/ccio-dma.c
1548
kfree(ioc);
drivers/parisc/ccio-dma.c
1557
hba->iommu = ioc;
drivers/parisc/ccio-dma.c
242
struct ioc *next; /* Linked list of discovered iocs */
drivers/parisc/ccio-dma.c
249
static struct ioc *ioc_list;
drivers/parisc/ccio-dma.c
284
#define CCIO_SEARCH_LOOP(ioc, res_idx, mask, size) \
drivers/parisc/ccio-dma.c
288
idx = (unsigned int)((unsigned long)res_ptr - (unsigned long)ioc->res_map); \
drivers/parisc/ccio-dma.c
293
ioc->res_hint = res_idx + (size >> 3); \
drivers/parisc/ccio-dma.c
299
u##size *res_ptr = (u##size *)&((ioc)->res_map[ioa->res_hint & ~((size >> 3) - 1)]); \
drivers/parisc/ccio-dma.c
300
u##size *res_end = (u##size *)&(ioc)->res_map[ioa->res_size]; \
drivers/parisc/ccio-dma.c
301
CCIO_SEARCH_LOOP(ioc, res_idx, mask, size); \
drivers/parisc/ccio-dma.c
302
res_ptr = (u##size *)&(ioc)->res_map[0]; \
drivers/parisc/ccio-dma.c
330
ccio_alloc_range(struct ioc *ioc, struct device *dev, size_t size)
drivers/parisc/ccio-dma.c
364
CCIO_FIND_FREE_MAPPING(ioc, res_idx, mask, 8);
drivers/parisc/ccio-dma.c
366
CCIO_FIND_FREE_MAPPING(ioc, res_idx, 0xff, 8);
drivers/parisc/ccio-dma.c
369
CCIO_FIND_FREE_MAPPING(ioc, res_idx, 0xffff, 16);
drivers/parisc/ccio-dma.c
371
CCIO_FIND_FREE_MAPPING(ioc, res_idx, ~(unsigned int)0, 32);
drivers/parisc/ccio-dma.c
374
CCIO_FIND_FREE_MAPPING(ioc, res_idx, ~0UL, 64);
drivers/parisc/ccio-dma.c
387
__func__, res_idx, ioc->res_hint);
drivers/parisc/ccio-dma.c
396
ioc->avg_search[ioc->avg_idx++] = cr_start;
drivers/parisc/ccio-dma.c
397
ioc->avg_idx &= CCIO_SEARCH_SAMPLE - 1;
drivers/parisc/ccio-dma.c
398
ioc->used_pages += pages_needed;
drivers/parisc/ccio-dma.c
406
#define CCIO_FREE_MAPPINGS(ioc, res_idx, mask, size) \
drivers/parisc/ccio-dma.c
407
u##size *res_ptr = (u##size *)&((ioc)->res_map[res_idx]); \
drivers/parisc/ccio-dma.c
421
ccio_free_range(struct ioc *ioc, dma_addr_t iova, unsigned long pages_mapped)
drivers/parisc/ccio-dma.c
434
ioc->used_pages -= pages_mapped;
drivers/parisc/ccio-dma.c
441
CCIO_FREE_MAPPINGS(ioc, res_idx, mask, 8);
drivers/parisc/ccio-dma.c
443
CCIO_FREE_MAPPINGS(ioc, res_idx, 0xffUL, 8);
drivers/parisc/ccio-dma.c
446
CCIO_FREE_MAPPINGS(ioc, res_idx, 0xffffUL, 16);
drivers/parisc/ccio-dma.c
448
CCIO_FREE_MAPPINGS(ioc, res_idx, ~(unsigned int)0, 32);
drivers/parisc/ccio-dma.c
451
CCIO_FREE_MAPPINGS(ioc, res_idx, ~0UL, 64);
drivers/parisc/ccio-dma.c
617
ccio_clear_io_tlb(struct ioc *ioc, dma_addr_t iovp, size_t byte_cnt)
drivers/parisc/ccio-dma.c
619
u32 chain_size = 1 << ioc->chainid_shift;
drivers/parisc/ccio-dma.c
625
WRITE_U32(CMD_TLB_PURGE | iovp, &ioc->ioc_regs->io_command);
drivers/parisc/ccio-dma.c
650
ccio_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
drivers/parisc/ccio-dma.c
661
char *pdir_ptr = (char *) &(ioc->pdir_base[idx]);
drivers/parisc/ccio-dma.c
663
BUG_ON(idx >= (ioc->pdir_size / sizeof(u64)));
drivers/parisc/ccio-dma.c
677
ccio_clear_io_tlb(ioc, CCIO_IOVP(iova), saved_byte_cnt);
drivers/parisc/ccio-dma.c
718
struct ioc *ioc;
drivers/parisc/ccio-dma.c
726
ioc = GET_IOC(dev);
drivers/parisc/ccio-dma.c
727
if (!ioc)
drivers/parisc/ccio-dma.c
737
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/ccio-dma.c
740
ioc->msingle_calls++;
drivers/parisc/ccio-dma.c
741
ioc->msingle_pages += size >> IOVP_SHIFT;
drivers/parisc/ccio-dma.c
744
idx = ccio_alloc_range(ioc, dev, size);
drivers/parisc/ccio-dma.c
747
pdir_start = &(ioc->pdir_base[idx]);
drivers/parisc/ccio-dma.c
768
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/ccio-dma.c
798
struct ioc *ioc;
drivers/parisc/ccio-dma.c
803
ioc = GET_IOC(dev);
drivers/parisc/ccio-dma.c
804
if (!ioc) {
drivers/parisc/ccio-dma.c
805
WARN_ON(!ioc);
drivers/parisc/ccio-dma.c
816
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/ccio-dma.c
819
ioc->usingle_calls++;
drivers/parisc/ccio-dma.c
820
ioc->usingle_pages += size >> IOVP_SHIFT;
drivers/parisc/ccio-dma.c
823
ccio_mark_invalid(ioc, iova, size);
drivers/parisc/ccio-dma.c
824
ccio_free_range(ioc, iova, (size >> IOVP_SHIFT));
drivers/parisc/ccio-dma.c
825
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/ccio-dma.c
908
struct ioc *ioc;
drivers/parisc/ccio-dma.c
916
ioc = GET_IOC(dev);
drivers/parisc/ccio-dma.c
917
if (!ioc)
drivers/parisc/ccio-dma.c
934
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/ccio-dma.c
937
ioc->msg_calls++;
drivers/parisc/ccio-dma.c
948
coalesced = iommu_coalesce_chunks(ioc, dev, sglist, nents, ccio_alloc_range);
drivers/parisc/ccio-dma.c
958
filled = iommu_fill_pdir(ioc, sglist, nents, hint, ccio_io_pdir_entry);
drivers/parisc/ccio-dma.c
960
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/ccio-dma.c
988
struct ioc *ioc;
drivers/parisc/ccio-dma.c
991
ioc = GET_IOC(dev);
drivers/parisc/ccio-dma.c
992
if (!ioc) {
drivers/parisc/ccio-dma.c
993
WARN_ON(!ioc);
drivers/parisc/iommu-helpers.h
101
iommu_coalesce_chunks(struct ioc *ioc, struct device *dev,
drivers/parisc/iommu-helpers.h
103
int (*iommu_alloc_range)(struct ioc *, struct device *, size_t))
drivers/parisc/iommu-helpers.h
15
iommu_fill_pdir(struct ioc *ioc, struct scatterlist *startsg, int nents,
drivers/parisc/iommu-helpers.h
175
| (iommu_alloc_range(ioc, dev, dma_len) << IOVP_SHIFT)
drivers/parisc/iommu-helpers.h
57
sg_dma_address(dma_sg) = pide | ioc->ibase;
drivers/parisc/iommu-helpers.h
64
pdirp = &(ioc->pdir_base[pide >> IOVP_SHIFT]);
drivers/parisc/iommu-helpers.h
75
ioc->msg_pages += startsg->length >> IOVP_SHIFT;
drivers/parisc/iommu.h
29
static inline struct ioc *GET_IOC(struct device *dev)
drivers/parisc/iommu.h
7
struct ioc;
drivers/parisc/sba_iommu.c
1001
filled = iommu_fill_pdir(ioc, sglist, nents, 0, sba_io_pdir_entry);
drivers/parisc/sba_iommu.c
1007
if (sba_check_pdir(ioc,"Check after sba_map_sg()"))
drivers/parisc/sba_iommu.c
1009
sba_dump_sg(ioc, sglist, nents);
drivers/parisc/sba_iommu.c
1014
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
1036
struct ioc *ioc;
drivers/parisc/sba_iommu.c
1044
ioc = GET_IOC(dev);
drivers/parisc/sba_iommu.c
1045
if (!ioc) {
drivers/parisc/sba_iommu.c
1046
WARN_ON(!ioc);
drivers/parisc/sba_iommu.c
1051
ioc->usg_calls++;
drivers/parisc/sba_iommu.c
1055
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
1056
sba_check_pdir(ioc,"Check before sba_unmap_sg()");
drivers/parisc/sba_iommu.c
1057
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
1065
ioc->usg_pages += ((sg_dma_address(sglist) & ~IOVP_MASK) + sg_dma_len(sglist) + IOVP_SIZE - 1) >> PAGE_SHIFT;
drivers/parisc/sba_iommu.c
1066
ioc->usingle_calls--; /* kluge since call is unmap_sg() */
drivers/parisc/sba_iommu.c
1075
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
1076
sba_check_pdir(ioc,"Check after sba_unmap_sg()");
drivers/parisc/sba_iommu.c
1077
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
1119
PAT_MOD(mod)->mod_info.ioc = PAT_GET_IOC(temp);
drivers/parisc/sba_iommu.c
1230
struct ioc *ioc;
drivers/parisc/sba_iommu.c
1240
lba_set_iregs(lba, ibd->ioc->ibase, ibd->ioc->imask);
drivers/parisc/sba_iommu.c
1246
setup_ibase_imask(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
drivers/parisc/sba_iommu.c
1249
.ioc = ioc,
drivers/parisc/sba_iommu.c
1271
sba_ioc_init_pluto(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
drivers/parisc/sba_iommu.c
1284
ioc->ibase = READ_REG(ioc->ioc_hpa + IOC_IBASE) & ~0x1fffffULL;
drivers/parisc/sba_iommu.c
1285
iova_space_size = ~(READ_REG(ioc->ioc_hpa + IOC_IMASK) & 0xFFFFFFFFUL) + 1;
drivers/parisc/sba_iommu.c
1287
if ((ioc->ibase < 0xfed00000UL) && ((ioc->ibase + iova_space_size) > 0xfee00000UL)) {
drivers/parisc/sba_iommu.c
1297
ioc->pdir_size = (iova_space_size / IOVP_SIZE) * sizeof(u64);
drivers/parisc/sba_iommu.c
1300
__func__, ioc->ioc_hpa, iova_space_size >> 20,
drivers/parisc/sba_iommu.c
1303
ioc->pdir_base = (void *) __get_free_pages(GFP_KERNEL,
drivers/parisc/sba_iommu.c
1304
get_order(ioc->pdir_size));
drivers/parisc/sba_iommu.c
1305
if (!ioc->pdir_base)
drivers/parisc/sba_iommu.c
1308
memset(ioc->pdir_base, 0, ioc->pdir_size);
drivers/parisc/sba_iommu.c
1311
__func__, ioc->pdir_base, ioc->pdir_size);
drivers/parisc/sba_iommu.c
1314
ioc->hint_shift_pdir = iov_order + PAGE_SHIFT;
drivers/parisc/sba_iommu.c
1315
ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT));
drivers/parisc/sba_iommu.c
1318
ioc->hint_shift_pdir, ioc->hint_mask_pdir);
drivers/parisc/sba_iommu.c
1321
WARN_ON((((unsigned long) ioc->pdir_base) & PAGE_MASK) != (unsigned long) ioc->pdir_base);
drivers/parisc/sba_iommu.c
1322
WRITE_REG(virt_to_phys(ioc->pdir_base), ioc->ioc_hpa + IOC_PDIR_BASE);
drivers/parisc/sba_iommu.c
1327
ioc->imask = iova_space_mask;
drivers/parisc/sba_iommu.c
1329
ioc->iovp_mask = ~(iova_space_mask + PAGE_SIZE - 1);
drivers/parisc/sba_iommu.c
1331
sba_dump_tlb(ioc->ioc_hpa);
drivers/parisc/sba_iommu.c
1333
setup_ibase_imask(sba, ioc, ioc_num);
drivers/parisc/sba_iommu.c
1335
WRITE_REG(ioc->imask, ioc->ioc_hpa + IOC_IMASK);
drivers/parisc/sba_iommu.c
1342
ioc->imask |= 0xFFFFFFFF00000000UL;
drivers/parisc/sba_iommu.c
1356
WRITE_REG(tcnfg, ioc->ioc_hpa + IOC_TCNFG);
drivers/parisc/sba_iommu.c
1362
WRITE_REG(ioc->ibase | 1, ioc->ioc_hpa + IOC_IBASE);
drivers/parisc/sba_iommu.c
1368
WRITE_REG(ioc->ibase | 31, ioc->ioc_hpa + IOC_PCOM);
drivers/parisc/sba_iommu.c
1385
ioc->pdir_size /= 2;
drivers/parisc/sba_iommu.c
1386
ioc->pdir_base[PDIR_INDEX(iova_space_size/2)] = SBA_AGPGART_COOKIE;
drivers/parisc/sba_iommu.c
1392
sba_ioc_init(struct parisc_device *sba, struct ioc *ioc, int ioc_num)
drivers/parisc/sba_iommu.c
1431
ioc->pdir_size = pdir_size = (iova_space_size/IOVP_SIZE) * sizeof(u64);
drivers/parisc/sba_iommu.c
1435
ioc->ioc_hpa,
drivers/parisc/sba_iommu.c
1440
ioc->pdir_base = sba_alloc_pdir(pdir_size);
drivers/parisc/sba_iommu.c
1443
__func__, ioc->pdir_base, pdir_size);
drivers/parisc/sba_iommu.c
1447
ioc->hint_shift_pdir = iov_order + PAGE_SHIFT;
drivers/parisc/sba_iommu.c
1448
ioc->hint_mask_pdir = ~(0x3 << (iov_order + PAGE_SHIFT));
drivers/parisc/sba_iommu.c
1451
ioc->hint_shift_pdir, ioc->hint_mask_pdir);
drivers/parisc/sba_iommu.c
1454
WRITE_REG64(virt_to_phys(ioc->pdir_base), ioc->ioc_hpa + IOC_PDIR_BASE);
drivers/parisc/sba_iommu.c
1464
ioc->ibase = 0;
drivers/parisc/sba_iommu.c
1465
ioc->imask = iova_space_mask; /* save it */
drivers/parisc/sba_iommu.c
1467
ioc->iovp_mask = ~(iova_space_mask + PAGE_SIZE - 1);
drivers/parisc/sba_iommu.c
1471
__func__, ioc->ibase, ioc->imask);
drivers/parisc/sba_iommu.c
1479
setup_ibase_imask(sba, ioc, ioc_num);
drivers/parisc/sba_iommu.c
1484
WRITE_REG(ioc->ibase | 1, ioc->ioc_hpa+IOC_IBASE);
drivers/parisc/sba_iommu.c
1485
WRITE_REG(ioc->imask, ioc->ioc_hpa+IOC_IMASK);
drivers/parisc/sba_iommu.c
1499
WRITE_REG(tcnfg, ioc->ioc_hpa+IOC_TCNFG);
drivers/parisc/sba_iommu.c
1505
WRITE_REG(0 | 31, ioc->ioc_hpa+IOC_PCOM);
drivers/parisc/sba_iommu.c
1507
ioc->ibase = 0; /* used by SBA_IOVA and related macros */
drivers/parisc/sba_iommu.c
1599
sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, ASTRO_IOC_OFFSET);
drivers/parisc/sba_iommu.c
1611
sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, PLUTO_IOC_OFFSET);
drivers/parisc/sba_iommu.c
1627
sba_dev->ioc[0].ioc_hpa = ioc_remap(sba_dev, IKE_IOC_OFFSET(0));
drivers/parisc/sba_iommu.c
1628
sba_dev->ioc[1].ioc_hpa = ioc_remap(sba_dev, IKE_IOC_OFFSET(1));
drivers/parisc/sba_iommu.c
1637
void __iomem *ioc_hpa = sba_dev->ioc[i].ioc_hpa;
drivers/parisc/sba_iommu.c
1665
READ_REG(sba_dev->ioc[i].ioc_hpa + ROPE7_CTL);
drivers/parisc/sba_iommu.c
1669
(unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x40),
drivers/parisc/sba_iommu.c
1670
(unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x50)
drivers/parisc/sba_iommu.c
1673
(unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x108),
drivers/parisc/sba_iommu.c
1674
(unsigned long) READ_REG(sba_dev->ioc[i].ioc_hpa + 0x400)
drivers/parisc/sba_iommu.c
1678
sba_ioc_init_pluto(sba_dev->dev, &(sba_dev->ioc[i]), i);
drivers/parisc/sba_iommu.c
1680
sba_ioc_init(sba_dev->dev, &(sba_dev->ioc[i]), i);
drivers/parisc/sba_iommu.c
1705
res_size = sba_dev->ioc[i].pdir_size/sizeof(u64); /* entries */
drivers/parisc/sba_iommu.c
1716
sba_dev->ioc[i].res_size = res_size;
drivers/parisc/sba_iommu.c
1717
sba_dev->ioc[i].res_map = (char *) __get_free_pages(GFP_KERNEL, get_order(res_size));
drivers/parisc/sba_iommu.c
1720
iterate_pages( sba_dev->ioc[i].res_map, res_size,
drivers/parisc/sba_iommu.c
1724
if (NULL == sba_dev->ioc[i].res_map)
drivers/parisc/sba_iommu.c
1730
memset(sba_dev->ioc[i].res_map, 0, res_size);
drivers/parisc/sba_iommu.c
1732
sba_dev->ioc[i].res_hint = (unsigned long *)
drivers/parisc/sba_iommu.c
1733
&(sba_dev->ioc[i].res_map[L1_CACHE_BYTES]);
drivers/parisc/sba_iommu.c
1737
sba_dev->ioc[i].res_map[0] = 0x80;
drivers/parisc/sba_iommu.c
1738
sba_dev->ioc[i].pdir_base[0] = (__force __le64) 0xeeffc0addbba0080ULL;
drivers/parisc/sba_iommu.c
1747
long *p_start = (long *) &(sba_dev->ioc[i].res_map[idx_start]);
drivers/parisc/sba_iommu.c
1748
long *p_end = (long *) &(sba_dev->ioc[i].res_map[idx_end]);
drivers/parisc/sba_iommu.c
1757
iterate_pages( sba_dev->ioc[i].res_map, res_size,
drivers/parisc/sba_iommu.c
1759
iterate_pages( sba_dev->ioc[i].pdir_base, sba_dev->ioc[i].pdir_size,
drivers/parisc/sba_iommu.c
1764
__func__, i, res_size, sba_dev->ioc[i].res_map);
drivers/parisc/sba_iommu.c
1788
struct ioc *ioc = &sba_dev->ioc[0]; /* FIXME: Multi-IOC support! */
drivers/parisc/sba_iommu.c
1789
int total_pages = (int) (ioc->res_size << 3); /* 8 bits per byte */
drivers/parisc/sba_iommu.c
1800
(int)((ioc->res_size << 3) * sizeof(u64)), /* 8 bits/byte */
drivers/parisc/sba_iommu.c
1804
ioc->res_size, ioc->res_size << 3); /* 8 bits per byte */
drivers/parisc/sba_iommu.c
1820
total_pages - ioc->used_pages, ioc->used_pages,
drivers/parisc/sba_iommu.c
1821
(int)(ioc->used_pages * 100 / total_pages));
drivers/parisc/sba_iommu.c
1823
min = max = ioc->avg_search[0];
drivers/parisc/sba_iommu.c
1825
avg += ioc->avg_search[i];
drivers/parisc/sba_iommu.c
1826
if (ioc->avg_search[i] > max) max = ioc->avg_search[i];
drivers/parisc/sba_iommu.c
1827
if (ioc->avg_search[i] < min) min = ioc->avg_search[i];
drivers/parisc/sba_iommu.c
1834
ioc->msingle_calls, ioc->msingle_pages,
drivers/parisc/sba_iommu.c
1835
(int)((ioc->msingle_pages * 1000)/ioc->msingle_calls));
drivers/parisc/sba_iommu.c
1838
min = ioc->usingle_calls;
drivers/parisc/sba_iommu.c
1839
max = ioc->usingle_pages - ioc->usg_pages;
drivers/parisc/sba_iommu.c
1844
ioc->msg_calls, ioc->msg_pages,
drivers/parisc/sba_iommu.c
1845
(int)((ioc->msg_pages * 1000)/ioc->msg_calls));
drivers/parisc/sba_iommu.c
1848
ioc->usg_calls, ioc->usg_pages,
drivers/parisc/sba_iommu.c
1849
(int)((ioc->usg_pages * 1000)/ioc->usg_calls));
drivers/parisc/sba_iommu.c
1859
struct ioc *ioc = &sba_dev->ioc[0]; /* FIXME: Multi-IOC support! */
drivers/parisc/sba_iommu.c
1861
seq_hex_dump(m, " ", DUMP_PREFIX_NONE, 32, 4, ioc->res_map,
drivers/parisc/sba_iommu.c
1862
ioc->res_size, false);
drivers/parisc/sba_iommu.c
1951
spin_lock_init(&(sba_dev->ioc[i].res_lock));
drivers/parisc/sba_iommu.c
2012
return &(sba->ioc[iocnum]);
drivers/parisc/sba_iommu.c
202
sba_dump_pdir_entry(struct ioc *ioc, char *msg, uint pide)
drivers/parisc/sba_iommu.c
205
__le64 *ptr = &(ioc->pdir_base[pide & (~0U * BITS_PER_LONG)]);
drivers/parisc/sba_iommu.c
206
unsigned long *rptr = (unsigned long *) &(ioc->res_map[(pide >>3) & ~(sizeof(unsigned long) - 1)]);
drivers/parisc/sba_iommu.c
234
sba_check_pdir(struct ioc *ioc, char *msg)
drivers/parisc/sba_iommu.c
236
u32 *rptr_end = (u32 *) &(ioc->res_map[ioc->res_size]);
drivers/parisc/sba_iommu.c
237
u32 *rptr = (u32 *) ioc->res_map; /* resource map ptr */
drivers/parisc/sba_iommu.c
238
u64 *pptr = ioc->pdir_base; /* pdir ptr */
drivers/parisc/sba_iommu.c
254
sba_dump_pdir_entry(ioc, msg, pide);
drivers/parisc/sba_iommu.c
278
sba_dump_sg( struct ioc *ioc, struct scatterlist *startsg, int nents)
drivers/parisc/sba_iommu.c
310
#define SBA_IOVA(ioc,iovp,offset,hint_reg) ((ioc->ibase) | (iovp) | (offset))
drivers/parisc/sba_iommu.c
311
#define SBA_IOVP(ioc,iova) ((iova) & (ioc)->iovp_mask)
drivers/parisc/sba_iommu.c
314
#define SBA_IOVA(ioc,iovp,offset,hint_reg) ((iovp) | (offset))
drivers/parisc/sba_iommu.c
315
#define SBA_IOVP(ioc,iova) (iova)
drivers/parisc/sba_iommu.c
323
static unsigned long ptr_to_pide(struct ioc *ioc, unsigned long *res_ptr,
drivers/parisc/sba_iommu.c
326
return (((unsigned long)res_ptr - (unsigned long)ioc->res_map) << 3)
drivers/parisc/sba_iommu.c
341
sba_search_bitmap(struct ioc *ioc, struct device *dev,
drivers/parisc/sba_iommu.c
344
unsigned long *res_ptr = ioc->res_hint;
drivers/parisc/sba_iommu.c
345
unsigned long *res_end = (unsigned long *) &(ioc->res_map[ioc->res_size]);
drivers/parisc/sba_iommu.c
354
BUG_ON(ioc->ibase & ~IOVP_MASK);
drivers/parisc/sba_iommu.c
355
shift = ioc->ibase >> IOVP_SHIFT;
drivers/parisc/sba_iommu.c
363
tpide = ptr_to_pide(ioc, res_ptr, 0);
drivers/parisc/sba_iommu.c
375
ioc->res_bitshift = 0;
drivers/parisc/sba_iommu.c
384
uint bitshiftcnt = ALIGN(ioc->res_bitshift, o);
drivers/parisc/sba_iommu.c
398
tpide = ptr_to_pide(ioc, res_ptr, bitshiftcnt);
drivers/parisc/sba_iommu.c
416
ioc->res_bitshift = bitshiftcnt + bits_wanted;
drivers/parisc/sba_iommu.c
421
ioc->res_hint = (unsigned long *) ioc->res_map;
drivers/parisc/sba_iommu.c
422
ioc->res_bitshift = 0;
drivers/parisc/sba_iommu.c
424
ioc->res_hint = res_ptr;
drivers/parisc/sba_iommu.c
440
sba_alloc_range(struct ioc *ioc, struct device *dev, size_t size)
drivers/parisc/sba_iommu.c
448
pide = sba_search_bitmap(ioc, dev, pages_needed);
drivers/parisc/sba_iommu.c
449
if (pide >= (ioc->res_size << 3)) {
drivers/parisc/sba_iommu.c
450
pide = sba_search_bitmap(ioc, dev, pages_needed);
drivers/parisc/sba_iommu.c
451
if (pide >= (ioc->res_size << 3))
drivers/parisc/sba_iommu.c
453
__FILE__, ioc->ioc_hpa);
drivers/parisc/sba_iommu.c
458
if(0x00 != ((u8 *) ioc->pdir_base)[pide*sizeof(u64) + 7]) {
drivers/parisc/sba_iommu.c
459
sba_dump_pdir_entry(ioc, "sba_search_bitmap() botched it?", pide);
drivers/parisc/sba_iommu.c
465
(uint) ((unsigned long) ioc->res_hint - (unsigned long) ioc->res_map),
drivers/parisc/sba_iommu.c
466
ioc->res_bitshift );
drivers/parisc/sba_iommu.c
475
ioc->avg_search[ioc->avg_idx++] = cr_start;
drivers/parisc/sba_iommu.c
476
ioc->avg_idx &= SBA_SEARCH_SAMPLE - 1;
drivers/parisc/sba_iommu.c
478
ioc->used_pages += pages_needed;
drivers/parisc/sba_iommu.c
494
sba_free_range(struct ioc *ioc, dma_addr_t iova, size_t size)
drivers/parisc/sba_iommu.c
496
unsigned long iovp = SBA_IOVP(ioc, iova);
drivers/parisc/sba_iommu.c
499
unsigned long *res_ptr = (unsigned long *) &((ioc)->res_map[ridx & ~RESMAP_IDX_MASK]);
drivers/parisc/sba_iommu.c
511
ioc->used_pages -= bits_not_wanted;
drivers/parisc/sba_iommu.c
525
#define SBA_DMA_HINT(ioc, val) ((val) << (ioc)->hint_shift_pdir)
drivers/parisc/sba_iommu.c
610
sba_mark_invalid(struct ioc *ioc, dma_addr_t iova, size_t byte_cnt)
drivers/parisc/sba_iommu.c
612
u32 iovp = (u32) SBA_IOVP(ioc,iova);
drivers/parisc/sba_iommu.c
613
__le64 *pdir_ptr = &ioc->pdir_base[PDIR_INDEX(iovp)];
drivers/parisc/sba_iommu.c
623
sba_dump_pdir_entry(ioc,"sba_mark_invalid()", PDIR_INDEX(iovp));
drivers/parisc/sba_iommu.c
664
WRITE_REG( SBA_IOVA(ioc, iovp, 0, 0), ioc->ioc_hpa+IOC_PCOM);
drivers/parisc/sba_iommu.c
676
struct ioc *ioc;
drivers/parisc/sba_iommu.c
684
ioc = GET_IOC(dev);
drivers/parisc/sba_iommu.c
685
if (!ioc)
drivers/parisc/sba_iommu.c
692
return((int)(mask >= (ioc->ibase - 1 +
drivers/parisc/sba_iommu.c
693
(ioc->pdir_size / sizeof(u64) * IOVP_SIZE) )));
drivers/parisc/sba_iommu.c
710
struct ioc *ioc;
drivers/parisc/sba_iommu.c
717
ioc = GET_IOC(dev);
drivers/parisc/sba_iommu.c
718
if (!ioc)
drivers/parisc/sba_iommu.c
727
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
729
sba_check_pdir(ioc,"Check before sba_map_single()");
drivers/parisc/sba_iommu.c
733
ioc->msingle_calls++;
drivers/parisc/sba_iommu.c
734
ioc->msingle_pages += size >> IOVP_SHIFT;
drivers/parisc/sba_iommu.c
736
pide = sba_alloc_range(ioc, dev, size);
drivers/parisc/sba_iommu.c
742
pdir_start = &(ioc->pdir_base[pide]);
drivers/parisc/sba_iommu.c
768
sba_check_pdir(ioc,"Check after sba_map_single()");
drivers/parisc/sba_iommu.c
770
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
773
return SBA_IOVA(ioc, iovp, offset, DEFAULT_DMA_HINT_REG);
drivers/parisc/sba_iommu.c
802
struct ioc *ioc;
drivers/parisc/sba_iommu.c
811
ioc = GET_IOC(dev);
drivers/parisc/sba_iommu.c
812
if (!ioc) {
drivers/parisc/sba_iommu.c
813
WARN_ON(!ioc);
drivers/parisc/sba_iommu.c
821
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
824
ioc->usingle_calls++;
drivers/parisc/sba_iommu.c
825
ioc->usingle_pages += size >> IOVP_SHIFT;
drivers/parisc/sba_iommu.c
828
sba_mark_invalid(ioc, iova, size);
drivers/parisc/sba_iommu.c
834
d = &(ioc->saved[ioc->saved_cnt]);
drivers/parisc/sba_iommu.c
837
if (++(ioc->saved_cnt) >= DELAYED_RESOURCE_CNT) {
drivers/parisc/sba_iommu.c
838
int cnt = ioc->saved_cnt;
drivers/parisc/sba_iommu.c
840
sba_free_range(ioc, d->iova, d->size);
drivers/parisc/sba_iommu.c
843
ioc->saved_cnt = 0;
drivers/parisc/sba_iommu.c
845
READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */
drivers/parisc/sba_iommu.c
848
sba_free_range(ioc, iova, size);
drivers/parisc/sba_iommu.c
853
READ_REG(ioc->ioc_hpa+IOC_PCOM); /* flush purges */
drivers/parisc/sba_iommu.c
856
spin_unlock_irqrestore(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
951
struct ioc *ioc;
drivers/parisc/sba_iommu.c
957
ioc = GET_IOC(dev);
drivers/parisc/sba_iommu.c
958
if (!ioc)
drivers/parisc/sba_iommu.c
969
spin_lock_irqsave(&ioc->res_lock, flags);
drivers/parisc/sba_iommu.c
972
if (sba_check_pdir(ioc,"Check before sba_map_sg()"))
drivers/parisc/sba_iommu.c
974
sba_dump_sg(ioc, sglist, nents);
drivers/parisc/sba_iommu.c
980
ioc->msg_calls++;
drivers/parisc/sba_iommu.c
991
iommu_coalesce_chunks(ioc, dev, sglist, nents, sba_alloc_range);
drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c
186
if (params->ioc)
drivers/phy/broadcom/phy-brcm-usb-init.c
799
if (params->ioc)
drivers/phy/broadcom/phy-brcm-usb-init.c
820
if (params->ioc)
drivers/phy/broadcom/phy-brcm-usb-init.h
61
int ioc;
drivers/phy/broadcom/phy-brcm-usb.c
510
of_property_read_u32(dn, "brcm,ioc", &priv->ini.ioc);
drivers/platform/x86/intel_scu_ipc.c
603
err = request_irq(data->irq, ioc, 0, "intel_scu_ipc", scu);
drivers/scsi/bfa/bfa.h
273
bfi_fn_lpu(bfa_ioc_pcifn(&(__bfa)->ioc), bfa_ioc_portid(&(__bfa)->ioc))
drivers/scsi/bfa/bfa.h
359
bfa_ioc_fetch_stats(&(__bfa)->ioc, __ioc_stats)
drivers/scsi/bfa/bfa.h
361
bfa_ioc_clr_stats(&(__bfa)->ioc)
drivers/scsi/bfa/bfa.h
363
bfa_ioc_get_nports(&(__bfa)->ioc)
drivers/scsi/bfa/bfa.h
365
bfa_ioc_get_adapter_manufacturer(&(__bfa)->ioc, __manufacturer)
drivers/scsi/bfa/bfa.h
367
bfa_ioc_get_adapter_model(&(__bfa)->ioc, __model)
drivers/scsi/bfa/bfa.h
369
bfa_ioc_get_adapter_serial_num(&(__bfa)->ioc, __serial_num)
drivers/scsi/bfa/bfa.h
371
bfa_ioc_get_adapter_fw_ver(&(__bfa)->ioc, __fw_ver)
drivers/scsi/bfa/bfa.h
373
bfa_ioc_get_adapter_optrom_ver(&(__bfa)->ioc, __optrom_ver)
drivers/scsi/bfa/bfa.h
375
bfa_ioc_get_pci_chip_rev(&(__bfa)->ioc, __chip_rev)
drivers/scsi/bfa/bfa.h
377
bfa_ioc_get_state(&(__bfa)->ioc)
drivers/scsi/bfa/bfa.h
379
bfa_ioc_get_type(&(__bfa)->ioc)
drivers/scsi/bfa/bfa.h
381
bfa_ioc_get_mac(&(__bfa)->ioc)
drivers/scsi/bfa/bfa.h
383
bfa_ioc_get_mfg_mac(&(__bfa)->ioc)
drivers/scsi/bfa/bfa_core.c
1031
bfa_ioc_mbox_send(&bfa->ioc, &cfg_req,
drivers/scsi/bfa/bfa_core.c
1048
if (bfa_asic_id_ctc(bfa_ioc_devid(&bfa->ioc))) {
drivers/scsi/bfa/bfa_core.c
1073
bfa_ioc_pcifn(&bfa->ioc) * BFI_IOC_MAX_CQS;
drivers/scsi/bfa/bfa_core.c
1075
bfa_ioc_pcifn(&bfa->ioc) * BFI_IOC_MAX_CQS;
drivers/scsi/bfa/bfa_core.c
1078
if (bfa_asic_id_ct2(bfa_ioc_devid(&bfa->ioc))) {
drivers/scsi/bfa/bfa_core.c
108
bfa_ablk_attach(ablk, &bfa->ioc);
drivers/scsi/bfa/bfa_core.c
1100
bfa_ioc_mem_claim(&bfa->ioc, bfa_mem_dma_virt(ioc_dma),
drivers/scsi/bfa/bfa_core.c
1154
bfa_ioc_debug_memclaim(&bfa->ioc, bfa_mem_kva_curp(iocfc));
drivers/scsi/bfa/bfa_core.c
119
bfa_cee_attach(cee, &bfa->ioc, bfa);
drivers/scsi/bfa/bfa_core.c
1248
void __iomem *kva = bfa_ioc_bar0(&bfa->ioc);
drivers/scsi/bfa/bfa_core.c
129
bfa_sfp_attach(sfp, &bfa->ioc, bfa, bfa->trcmod);
drivers/scsi/bfa/bfa_core.c
1308
bfa->ioc.attr->pwwn = bfa->iocfc.cfgrsp->pbc_cfg.pbc_pwwn;
drivers/scsi/bfa/bfa_core.c
1309
bfa->ioc.attr->nwwn = bfa->iocfc.cfgrsp->pbc_cfg.pbc_nwwn;
drivers/scsi/bfa/bfa_core.c
1339
bfa->ioc.attr->pwwn = msg->pwwn;
drivers/scsi/bfa/bfa_core.c
1340
bfa->ioc.attr->nwwn = msg->nwwn;
drivers/scsi/bfa/bfa_core.c
1353
u32 card_type = bfa->ioc.attr->card_type;
drivers/scsi/bfa/bfa_core.c
1355
if (bfa_ioc_is_operational(&bfa->ioc)) {
drivers/scsi/bfa/bfa_core.c
1389
bfa_ioc_mbox_send(&bfa->ioc, &faa_attr_req,
drivers/scsi/bfa/bfa_core.c
139
bfa_flash_attach(flash, &bfa->ioc, bfa, bfa->trcmod, mincfg);
drivers/scsi/bfa/bfa_core.c
150
bfa_diag_attach(diag, &bfa->ioc, bfa, bfa_fcport_beacon, bfa->trcmod);
drivers/scsi/bfa/bfa_core.c
1520
struct bfa_ioc_s *ioc = &bfa->ioc;
drivers/scsi/bfa/bfa_core.c
1527
ioc->trcmod = bfa->trcmod;
drivers/scsi/bfa/bfa_core.c
1528
bfa_ioc_attach(&bfa->ioc, bfa, &bfa_iocfc_cbfn, &bfa->timer_mod);
drivers/scsi/bfa/bfa_core.c
1530
bfa_ioc_pci_init(&bfa->ioc, pcidev, BFI_PCIFN_CLASS_FC);
drivers/scsi/bfa/bfa_core.c
1531
bfa_ioc_mbox_register(&bfa->ioc, bfa_mbox_isrs);
drivers/scsi/bfa/bfa_core.c
160
bfa_phy_attach(phy, &bfa->ioc, bfa, bfa->trcmod, mincfg);
drivers/scsi/bfa/bfa_core.c
1686
return bfa_ioc_is_operational(&bfa->ioc) &&
drivers/scsi/bfa/bfa_core.c
170
bfa_fru_attach(fru, &bfa->ioc, bfa, bfa->trcmod, mincfg);
drivers/scsi/bfa/bfa_core.c
1893
bfa_ioc_detach(&bfa->ioc);
drivers/scsi/bfa/bfa_core.c
271
bfa_ioc_enable(&iocfc->bfa->ioc);
drivers/scsi/bfa/bfa_core.c
452
bfa_ioc_disable(&iocfc->bfa->ioc);
drivers/scsi/bfa/bfa_core.c
484
bfa_ioc_enable(&iocfc->bfa->ioc);
drivers/scsi/bfa/bfa_core.c
570
bfa_ioc_disable(&iocfc->bfa->ioc);
drivers/scsi/bfa/bfa_core.c
669
bfa_ioc_disable(&iocfc->bfa->ioc);
drivers/scsi/bfa/bfa_core.c
847
int port_id = bfa_ioc_portid(&bfa->ioc);
drivers/scsi/bfa/bfa_core.c
849
bfa_trc(bfa, bfa_ioc_pcifn(&bfa->ioc));
drivers/scsi/bfa/bfa_core.c
854
if (bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)) {
drivers/scsi/bfa/bfa_core.c
913
if (bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)) {
drivers/scsi/bfa/bfa_core.c
920
halt_isr = bfa_asic_id_ct(bfa->ioc.pcidev.device_id) ?
drivers/scsi/bfa/bfa_core.c
928
bfa_ioc_mbox_isr(&bfa->ioc);
drivers/scsi/bfa/bfa_core.c
937
curr_value = readl(bfa->ioc.ioc_regs.ll_halt);
drivers/scsi/bfa/bfa_core.c
939
writel(curr_value, bfa->ioc.ioc_regs.ll_halt);
drivers/scsi/bfa/bfa_core.c
949
bfa->ioc.ioc_regs.pss_err_status_reg);
drivers/scsi/bfa/bfa_core.c
95
bfa_port_attach(port, &bfa->ioc, bfa, bfa->trcmod);
drivers/scsi/bfa/bfa_core.c
951
bfa->ioc.ioc_regs.pss_err_status_reg);
drivers/scsi/bfa/bfa_core.c
955
bfa_ioc_error_isr(&bfa->ioc);
drivers/scsi/bfa/bfa_defs_svc.h
1440
struct bfa_ioc_aen_data_s ioc;
drivers/scsi/bfa/bfa_fcs.c
58
struct bfa_ioc_s *ioc = &fabric->fcs->bfa->ioc;
drivers/scsi/bfa/bfa_fcs.c
60
port_cfg->nwwn = ioc->attr->nwwn;
drivers/scsi/bfa/bfa_fcs.c
61
port_cfg->pwwn = ioc->attr->pwwn;
drivers/scsi/bfa/bfa_fcs.c
747
port_cfg->nwwn = fabric->fcs->bfa->ioc.attr->nwwn;
drivers/scsi/bfa/bfa_fcs.c
748
port_cfg->pwwn = fabric->fcs->bfa->ioc.attr->pwwn;
drivers/scsi/bfa/bfa_fcs.c
761
bfa_ioc_get_adapter_model(&fabric->fcs->bfa->ioc, model);
drivers/scsi/bfa/bfa_fcs.c
822
bfa_ioc_get_adapter_model(&fabric->fcs->bfa->ioc, model);
drivers/scsi/bfa/bfa_fcs_lport.c
2584
bfa_ioc_get_adapter_manufacturer(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2586
bfa_ioc_get_adapter_serial_num(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2588
bfa_ioc_get_adapter_model(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2590
bfa_ioc_get_adapter_model(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2592
bfa_ioc_get_pci_chip_rev(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2594
bfa_ioc_get_adapter_optrom_ver(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2596
bfa_ioc_get_adapter_fw_ver(&port->fcs->bfa->ioc,
drivers/scsi/bfa/bfa_fcs_lport.c
2624
cpu_to_be32(bfa_ioc_get_nports(&port->fcs->bfa->ioc));
drivers/scsi/bfa/bfa_fcs_lport.c
5309
if ((!port->vport) && bfa_ioc_get_fcmode(&port->fcs->bfa->ioc)) {
drivers/scsi/bfa/bfa_hw_cb.c
19
void __iomem *kva = bfa_ioc_bar0(&bfa->ioc);
drivers/scsi/bfa/bfa_hw_cb.c
20
int fn = bfa_ioc_pcifn(&bfa->ioc);
drivers/scsi/bfa/bfa_hw_cb.c
34
writel(__HFN_INT_CPE_Q0 << CPE_Q_NUM(bfa_ioc_pcifn(&bfa->ioc), reqq),
drivers/scsi/bfa/bfa_hw_cb.c
48
writel(__HFN_INT_RME_Q0 << RME_Q_NUM(bfa_ioc_pcifn(&bfa->ioc), rspq),
drivers/scsi/bfa/bfa_hw_cb.c
73
if (bfa_ioc_pcifn(&bfa->ioc) == 0) {
drivers/scsi/bfa/bfa_hw_ct.c
161
bfa_ioc_isr_mode_set(&bfa->ioc, msix);
drivers/scsi/bfa/bfa_hw_ct.c
29
void __iomem *kva = bfa_ioc_bar0(&bfa->ioc);
drivers/scsi/bfa/bfa_hw_ct.c
30
int fn = bfa_ioc_pcifn(&bfa->ioc);
drivers/scsi/bfa/bfa_hw_ct.c
45
void __iomem *kva = bfa_ioc_bar0(&bfa->ioc);
drivers/scsi/bfa/bfa_ioc.c
100
static void bfa_ioc_recover(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
1000
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1002
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
101
static void bfa_ioc_event_notify(struct bfa_ioc_s *ioc ,
drivers/scsi/bfa/bfa_ioc.c
1018
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1025
bfa_iocpf_timer_start(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1026
bfa_ioc_send_disable(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
103
static void bfa_ioc_disable_comp(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
1035
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1037
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
104
static void bfa_ioc_lpu_stop(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
1041
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
1046
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
105
static void bfa_ioc_fail_notify(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
1050
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/scsi/bfa/bfa_ioc.c
1058
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
106
static void bfa_ioc_pf_fwmismatch(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
1065
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1074
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1076
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1080
bfa_ioc_sync_leave(ioc);
drivers/scsi/bfa/bfa_ioc.c
1081
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
1087
bfa_fsm_send_event(ioc, IOC_E_HWFAILED);
drivers/scsi/bfa/bfa_ioc.c
1094
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1104
bfa_ioc_mbox_flush(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1105
bfa_fsm_send_event(iocpf->ioc, IOC_E_DISABLED);
drivers/scsi/bfa/bfa_ioc.c
111
struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.c
1111
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1113
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1121
bfa_ioc_firmware_unlock(ioc);
drivers/scsi/bfa/bfa_ioc.c
1126
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1133
bfa_ioc_debug_save_ftrc(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1134
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1143
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1145
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1149
bfa_ioc_notify_fail(ioc);
drivers/scsi/bfa/bfa_ioc.c
1150
bfa_ioc_sync_leave(ioc);
drivers/scsi/bfa/bfa_ioc.c
1151
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/scsi/bfa/bfa_ioc.c
1152
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
1158
bfa_fsm_send_event(ioc, IOC_E_HWFAILED);
drivers/scsi/bfa/bfa_ioc.c
1162
bfa_sem_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
1167
bfa_sem_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
1168
bfa_ioc_firmware_unlock(ioc);
drivers/scsi/bfa/bfa_ioc.c
1176
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1183
bfa_trc(iocpf->ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
1192
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1194
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1202
bfa_ioc_firmware_unlock(ioc);
drivers/scsi/bfa/bfa_ioc.c
1207
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1217
bfa_ioc_lpu_stop(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1222
bfa_ioc_mbox_flush(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1224
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
1230
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1232
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1236
bfa_ioc_sync_ack(ioc);
drivers/scsi/bfa/bfa_ioc.c
1237
bfa_ioc_notify_fail(ioc);
drivers/scsi/bfa/bfa_ioc.c
1239
bfa_ioc_sync_leave(ioc);
drivers/scsi/bfa/bfa_ioc.c
1240
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/scsi/bfa/bfa_ioc.c
1241
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
1244
if (bfa_ioc_sync_complete(ioc))
drivers/scsi/bfa/bfa_ioc.c
1247
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
1255
bfa_fsm_send_event(ioc, IOC_E_HWFAILED);
drivers/scsi/bfa/bfa_ioc.c
1259
bfa_sem_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
1267
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1274
bfa_trc(iocpf->ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
1283
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
1285
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1293
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
1305
bfa_ioc_event_notify(struct bfa_ioc_s *ioc, enum bfa_ioc_event_e event)
drivers/scsi/bfa/bfa_ioc.c
1310
list_for_each(qe, &ioc->notify_q) {
drivers/scsi/bfa/bfa_ioc.c
1317
bfa_ioc_disable_comp(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1319
ioc->cbfn->disable_cbfn(ioc->bfa);
drivers/scsi/bfa/bfa_ioc.c
1320
bfa_ioc_event_notify(ioc, BFA_IOC_E_DISABLED);
drivers/scsi/bfa/bfa_ioc.c
1345
bfa_ioc_hw_sem_get(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1353
r32 = readl(ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
1356
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_SEM_ERROR);
drivers/scsi/bfa/bfa_ioc.c
1360
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_SEMLOCKED);
drivers/scsi/bfa/bfa_ioc.c
1364
bfa_sem_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
1371
bfa_ioc_lmem_init(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1377
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1385
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1392
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1401
bfa_trc(ioc, pss_ctl);
drivers/scsi/bfa/bfa_ioc.c
1404
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1408
bfa_ioc_lpu_start(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1415
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1418
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1422
bfa_ioc_lpu_stop(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1429
pss_ctl = readl(ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1432
writel(pss_ctl, ioc->ioc_regs.pss_ctl_reg);
drivers/scsi/bfa/bfa_ioc.c
1439
bfa_ioc_fwver_get(struct bfa_ioc_s *ioc, struct bfi_ioc_image_hdr_s *fwhdr)
drivers/scsi/bfa/bfa_ioc.c
1446
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, loff);
drivers/scsi/bfa/bfa_ioc.c
1447
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
1452
bfa_mem_read(ioc->ioc_regs.smem_page_start, loff);
drivers/scsi/bfa/bfa_ioc.c
1461
bfa_ioc_fwver_cmp(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.c
1468
bfa_cb_image_get_chunk(bfa_ioc_asic_gen(ioc), 0);
drivers/scsi/bfa/bfa_ioc.c
1484
smem_flash_cmp = bfa_ioc_flash_fwver_cmp(ioc, smem_fwhdr);
drivers/scsi/bfa/bfa_ioc.c
1501
bfa_ioc_fwver_valid(struct bfa_ioc_s *ioc, u32 boot_env)
drivers/scsi/bfa/bfa_ioc.c
1505
bfa_ioc_fwver_get(ioc, &fwhdr);
drivers/scsi/bfa/bfa_ioc.c
1508
bfa_trc(ioc, fwhdr.bootenv);
drivers/scsi/bfa/bfa_ioc.c
1509
bfa_trc(ioc, boot_env);
drivers/scsi/bfa/bfa_ioc.c
1513
return bfa_ioc_fwver_cmp(ioc, &fwhdr);
drivers/scsi/bfa/bfa_ioc.c
1627
bfa_ioc_flash_img_get_chnk(struct bfa_ioc_s *ioc, u32 off,
drivers/scsi/bfa/bfa_ioc.c
1630
return bfa_flash_raw_read(ioc->pcidev.pci_bar_kva,
drivers/scsi/bfa/bfa_ioc.c
1636
bfa_ioc_flash_fwver_cmp(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.c
1643
status = bfa_ioc_flash_img_get_chnk(ioc, 0, fwimg);
drivers/scsi/bfa/bfa_ioc.c
1659
bfa_ioc_fwsig_invalidate(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1666
ioc_fwstate = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc.c
1670
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, loff);
drivers/scsi/bfa/bfa_ioc.c
1671
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
1672
bfa_mem_write(ioc->ioc_regs.smem_page_start, loff, BFA_IOC_FW_INV_SIGN);
drivers/scsi/bfa/bfa_ioc.c
1681
bfa_ioc_msgflush(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1685
r32 = readl(ioc->ioc_regs.lpu_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
1687
writel(1, ioc->ioc_regs.lpu_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
1691
bfa_ioc_hwinit(struct bfa_ioc_s *ioc, bfa_boolean_t force)
drivers/scsi/bfa/bfa_ioc.c
1698
ioc_fwstate = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc.c
1703
bfa_trc(ioc, ioc_fwstate);
drivers/scsi/bfa/bfa_ioc.c
1712
BFA_FALSE : bfa_ioc_fwver_valid(ioc, boot_env);
drivers/scsi/bfa/bfa_ioc.c
1715
if (bfa_ioc_boot(ioc, boot_type, boot_env) == BFA_STATUS_OK)
drivers/scsi/bfa/bfa_ioc.c
1716
bfa_ioc_poll_fwinit(ioc);
drivers/scsi/bfa/bfa_ioc.c
1725
bfa_ioc_poll_fwinit(ioc);
drivers/scsi/bfa/bfa_ioc.c
1743
bfa_ioc_msgflush(ioc);
drivers/scsi/bfa/bfa_ioc.c
1744
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FWREADY);
drivers/scsi/bfa/bfa_ioc.c
1751
if (bfa_ioc_boot(ioc, boot_type, boot_env) == BFA_STATUS_OK)
drivers/scsi/bfa/bfa_ioc.c
1752
bfa_ioc_poll_fwinit(ioc);
drivers/scsi/bfa/bfa_ioc.c
1758
struct bfa_ioc_s *ioc = (struct bfa_ioc_s *) ioc_arg;
drivers/scsi/bfa/bfa_ioc.c
1760
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
1761
bfa_fsm_send_event(ioc, IOC_E_TIMEOUT);
drivers/scsi/bfa/bfa_ioc.c
1765
bfa_ioc_mbox_send(struct bfa_ioc_s *ioc, void *ioc_msg, int len)
drivers/scsi/bfa/bfa_ioc.c
1770
bfa_trc(ioc, msgp[0]);
drivers/scsi/bfa/bfa_ioc.c
1771
bfa_trc(ioc, len);
drivers/scsi/bfa/bfa_ioc.c
1780
ioc->ioc_regs.hfn_mbox + i * sizeof(u32));
drivers/scsi/bfa/bfa_ioc.c
1783
writel(0, ioc->ioc_regs.hfn_mbox + i * sizeof(u32));
drivers/scsi/bfa/bfa_ioc.c
1788
writel(1, ioc->ioc_regs.hfn_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
1789
(void) readl(ioc->ioc_regs.hfn_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
1793
bfa_ioc_send_enable(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1798
bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
1799
enable_req.clscode = cpu_to_be16(ioc->clscode);
drivers/scsi/bfa/bfa_ioc.c
1802
bfa_ioc_mbox_send(ioc, &enable_req, sizeof(struct bfi_ioc_ctrl_req_s));
drivers/scsi/bfa/bfa_ioc.c
1806
bfa_ioc_send_disable(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1811
bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
1812
disable_req.clscode = cpu_to_be16(ioc->clscode);
drivers/scsi/bfa/bfa_ioc.c
1815
bfa_ioc_mbox_send(ioc, &disable_req, sizeof(struct bfi_ioc_ctrl_req_s));
drivers/scsi/bfa/bfa_ioc.c
1819
bfa_ioc_send_getattr(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1824
bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
1825
bfa_dma_be_addr_set(attr_req.attr_addr, ioc->attr_dma.pa);
drivers/scsi/bfa/bfa_ioc.c
1826
bfa_ioc_mbox_send(ioc, &attr_req, sizeof(attr_req));
drivers/scsi/bfa/bfa_ioc.c
1832
struct bfa_ioc_s *ioc = cbarg;
drivers/scsi/bfa/bfa_ioc.c
1835
hb_count = readl(ioc->ioc_regs.heartbeat);
drivers/scsi/bfa/bfa_ioc.c
1836
if (ioc->hb_count == hb_count) {
drivers/scsi/bfa/bfa_ioc.c
1837
bfa_ioc_recover(ioc);
drivers/scsi/bfa/bfa_ioc.c
1840
ioc->hb_count = hb_count;
drivers/scsi/bfa/bfa_ioc.c
1843
bfa_ioc_mbox_poll(ioc);
drivers/scsi/bfa/bfa_ioc.c
1844
bfa_hb_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
1848
bfa_ioc_hb_monitor(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1850
ioc->hb_count = readl(ioc->ioc_regs.heartbeat);
drivers/scsi/bfa/bfa_ioc.c
1851
bfa_hb_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
1858
bfa_ioc_download_fw(struct bfa_ioc_s *ioc, u32 boot_type,
drivers/scsi/bfa/bfa_ioc.c
1875
status = bfa_ioc_flash_img_get_chnk(ioc,
drivers/scsi/bfa/bfa_ioc.c
1882
fwimg_size = bfa_cb_image_get_size(bfa_ioc_asic_gen(ioc));
drivers/scsi/bfa/bfa_ioc.c
1883
fwimg = bfa_cb_image_get_chunk(bfa_ioc_asic_gen(ioc),
drivers/scsi/bfa/bfa_ioc.c
1887
bfa_trc(ioc, fwimg_size);
drivers/scsi/bfa/bfa_ioc.c
1890
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, loff);
drivers/scsi/bfa/bfa_ioc.c
1891
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
1900
status = bfa_ioc_flash_img_get_chnk(ioc,
drivers/scsi/bfa/bfa_ioc.c
1909
bfa_ioc_asic_gen(ioc),
drivers/scsi/bfa/bfa_ioc.c
1917
bfa_mem_write(ioc->ioc_regs.smem_page_start, loff,
drivers/scsi/bfa/bfa_ioc.c
1928
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
1932
writel(PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, 0),
drivers/scsi/bfa/bfa_ioc.c
1933
ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
1942
asicmode = BFI_FWBOOT_DEVMODE(ioc->asic_gen, ioc->asic_mode,
drivers/scsi/bfa/bfa_ioc.c
1943
ioc->port0_mode, ioc->port1_mode);
drivers/scsi/bfa/bfa_ioc.c
1944
bfa_mem_write(ioc->ioc_regs.smem_page_start, BFI_FWBOOT_DEVMODE_OFF,
drivers/scsi/bfa/bfa_ioc.c
1946
bfa_mem_write(ioc->ioc_regs.smem_page_start, BFI_FWBOOT_TYPE_OFF,
drivers/scsi/bfa/bfa_ioc.c
1948
bfa_mem_write(ioc->ioc_regs.smem_page_start, BFI_FWBOOT_ENV_OFF,
drivers/scsi/bfa/bfa_ioc.c
1958
bfa_ioc_getattr_reply(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1960
struct bfi_ioc_attr_s *attr = ioc->attr;
drivers/scsi/bfa/bfa_ioc.c
1965
ioc->fcmode = (attr->port_mode == BFI_PORT_MODE_FC);
drivers/scsi/bfa/bfa_ioc.c
1968
bfa_fsm_send_event(ioc, IOC_E_FWRSP_GETATTR);
drivers/scsi/bfa/bfa_ioc.c
1975
bfa_ioc_mbox_attach(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1977
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
1983
mod->mbhdlr[mc].cbarg = ioc->bfa;
drivers/scsi/bfa/bfa_ioc.c
1991
bfa_ioc_mbox_poll(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
1993
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
2006
stat = readl(ioc->ioc_regs.hfn_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
2014
bfa_ioc_mbox_send(ioc, cmd->msg, sizeof(cmd->msg));
drivers/scsi/bfa/bfa_ioc.c
2021
bfa_ioc_mbox_flush(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2023
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
2039
bfa_ioc_smem_read(struct bfa_ioc_s *ioc, void *tbuf, u32 soff, u32 sz)
drivers/scsi/bfa/bfa_ioc.c
2046
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, soff);
drivers/scsi/bfa/bfa_ioc.c
2048
bfa_trc(ioc, pgnum);
drivers/scsi/bfa/bfa_ioc.c
2049
bfa_trc(ioc, loff);
drivers/scsi/bfa/bfa_ioc.c
2050
bfa_trc(ioc, sz);
drivers/scsi/bfa/bfa_ioc.c
2055
if (BFA_FALSE == bfa_ioc_sem_get(ioc->ioc_regs.ioc_init_sem_reg)) {
drivers/scsi/bfa/bfa_ioc.c
2056
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
2060
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
2063
bfa_trc(ioc, len);
drivers/scsi/bfa/bfa_ioc.c
2065
r32 = bfa_mem_read(ioc->ioc_regs.smem_page_start, loff);
drivers/scsi/bfa/bfa_ioc.c
2075
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
2078
writel(PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, 0),
drivers/scsi/bfa/bfa_ioc.c
2079
ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
2083
readl(ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2084
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2086
bfa_trc(ioc, pgnum);
drivers/scsi/bfa/bfa_ioc.c
2098
bfa_ioc_smem_clr(struct bfa_ioc_s *ioc, u32 soff, u32 sz)
drivers/scsi/bfa/bfa_ioc.c
2103
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, soff);
drivers/scsi/bfa/bfa_ioc.c
2105
bfa_trc(ioc, pgnum);
drivers/scsi/bfa/bfa_ioc.c
2106
bfa_trc(ioc, loff);
drivers/scsi/bfa/bfa_ioc.c
2107
bfa_trc(ioc, sz);
drivers/scsi/bfa/bfa_ioc.c
2112
if (BFA_FALSE == bfa_ioc_sem_get(ioc->ioc_regs.ioc_init_sem_reg)) {
drivers/scsi/bfa/bfa_ioc.c
2113
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
2117
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
2120
bfa_trc(ioc, len);
drivers/scsi/bfa/bfa_ioc.c
2122
bfa_mem_write(ioc->ioc_regs.smem_page_start, loff, 0);
drivers/scsi/bfa/bfa_ioc.c
2131
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
2134
writel(PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, 0),
drivers/scsi/bfa/bfa_ioc.c
2135
ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
2140
readl(ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2141
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2142
bfa_trc(ioc, pgnum);
drivers/scsi/bfa/bfa_ioc.c
2147
bfa_ioc_fail_notify(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2149
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
2154
ioc->cbfn->hbfail_cbfn(ioc->bfa);
drivers/scsi/bfa/bfa_ioc.c
2155
bfa_ioc_event_notify(ioc, BFA_IOC_E_FAILED);
drivers/scsi/bfa/bfa_ioc.c
2157
bfa_ioc_debug_save_ftrc(ioc);
drivers/scsi/bfa/bfa_ioc.c
2161
bfa_ioc_aen_post(ioc, BFA_IOC_AEN_HBFAIL);
drivers/scsi/bfa/bfa_ioc.c
2166
bfa_ioc_pf_fwmismatch(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2168
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
2172
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
2176
bfa_ioc_aen_post(ioc, BFA_IOC_AEN_FWMISMATCH);
drivers/scsi/bfa/bfa_ioc.c
2180
bfa_ioc_pll_init(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2186
bfa_ioc_sem_get(ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2188
bfa_ioc_pll_init_asic(ioc);
drivers/scsi/bfa/bfa_ioc.c
2190
ioc->pllinit = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2195
bfa_ioc_lmem_init(ioc);
drivers/scsi/bfa/bfa_ioc.c
2200
readl(ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2201
writel(1, ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
2211
bfa_ioc_boot(struct bfa_ioc_s *ioc, u32 boot_type, u32 boot_env)
drivers/scsi/bfa/bfa_ioc.c
2215
bfa_ioc_stats(ioc, ioc_boots);
drivers/scsi/bfa/bfa_ioc.c
2217
if (bfa_ioc_pll_init(ioc) != BFA_STATUS_OK)
drivers/scsi/bfa/bfa_ioc.c
2224
bfa_cb_image_get_chunk(bfa_ioc_asic_gen(ioc), 0);
drivers/scsi/bfa/bfa_ioc.c
2230
if (bfa_ioc_flash_fwver_cmp(ioc, drv_fwhdr) ==
drivers/scsi/bfa/bfa_ioc.c
2239
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_MEMTEST);
drivers/scsi/bfa/bfa_ioc.c
2240
bfa_ioc_set_alt_ioc_fwstate(ioc, BFI_IOC_MEMTEST);
drivers/scsi/bfa/bfa_ioc.c
2242
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_INITING);
drivers/scsi/bfa/bfa_ioc.c
2243
bfa_ioc_set_alt_ioc_fwstate(ioc, BFI_IOC_INITING);
drivers/scsi/bfa/bfa_ioc.c
2246
bfa_ioc_msgflush(ioc);
drivers/scsi/bfa/bfa_ioc.c
2247
status = bfa_ioc_download_fw(ioc, boot_type, boot_env);
drivers/scsi/bfa/bfa_ioc.c
2249
bfa_ioc_lpu_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
2252
bfa_iocpf_timeout(ioc);
drivers/scsi/bfa/bfa_ioc.c
2258
bfa_ioc_is_operational(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2260
return bfa_fsm_cmp_state(ioc, bfa_ioc_sm_op);
drivers/scsi/bfa/bfa_ioc.c
2264
bfa_ioc_msgget(struct bfa_ioc_s *ioc, void *mbmsg)
drivers/scsi/bfa/bfa_ioc.c
2270
r32 = readl(ioc->ioc_regs.lpu_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
2279
r32 = readl(ioc->ioc_regs.lpu_mbox +
drivers/scsi/bfa/bfa_ioc.c
2287
writel(1, ioc->ioc_regs.lpu_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
2288
readl(ioc->ioc_regs.lpu_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
2294
bfa_ioc_isr(struct bfa_ioc_s *ioc, struct bfi_mbmsg_s *m)
drivers/scsi/bfa/bfa_ioc.c
2297
struct bfa_iocpf_s *iocpf = &ioc->iocpf;
drivers/scsi/bfa/bfa_ioc.c
2301
bfa_ioc_stats(ioc, ioc_isrs);
drivers/scsi/bfa/bfa_ioc.c
2308
ioc->port_mode = ioc->port_mode_cfg =
drivers/scsi/bfa/bfa_ioc.c
2310
ioc->ad_cap_bm = msg->fw_event.cap_bm;
drivers/scsi/bfa/bfa_ioc.c
2319
bfa_ioc_getattr_reply(ioc);
drivers/scsi/bfa/bfa_ioc.c
2323
bfa_trc(ioc, msg->mh.msg_id);
drivers/scsi/bfa/bfa_ioc.c
2335
bfa_ioc_attach(struct bfa_ioc_s *ioc, void *bfa, struct bfa_ioc_cbfn_s *cbfn,
drivers/scsi/bfa/bfa_ioc.c
2338
ioc->bfa = bfa;
drivers/scsi/bfa/bfa_ioc.c
2339
ioc->cbfn = cbfn;
drivers/scsi/bfa/bfa_ioc.c
2340
ioc->timer_mod = timer_mod;
drivers/scsi/bfa/bfa_ioc.c
2341
ioc->fcmode = BFA_FALSE;
drivers/scsi/bfa/bfa_ioc.c
2342
ioc->pllinit = BFA_FALSE;
drivers/scsi/bfa/bfa_ioc.c
2343
ioc->dbg_fwsave_once = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2344
ioc->iocpf.ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
2346
bfa_ioc_mbox_attach(ioc);
drivers/scsi/bfa/bfa_ioc.c
2347
INIT_LIST_HEAD(&ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
2349
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
2350
bfa_fsm_send_event(ioc, IOC_E_RESET);
drivers/scsi/bfa/bfa_ioc.c
2357
bfa_ioc_detach(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2359
bfa_fsm_send_event(ioc, IOC_E_DETACH);
drivers/scsi/bfa/bfa_ioc.c
2360
INIT_LIST_HEAD(&ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
2369
bfa_ioc_pci_init(struct bfa_ioc_s *ioc, struct bfa_pcidev_s *pcidev,
drivers/scsi/bfa/bfa_ioc.c
2372
ioc->clscode = clscode;
drivers/scsi/bfa/bfa_ioc.c
2373
ioc->pcidev = *pcidev;
drivers/scsi/bfa/bfa_ioc.c
2378
ioc->port0_mode = ioc->port1_mode = BFI_PORT_MODE_FC;
drivers/scsi/bfa/bfa_ioc.c
2379
ioc->asic_mode = BFI_ASIC_MODE_FC;
drivers/scsi/bfa/bfa_ioc.c
2384
ioc->asic_gen = BFI_ASIC_GEN_CB;
drivers/scsi/bfa/bfa_ioc.c
2385
ioc->fcmode = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2386
ioc->port_mode = ioc->port_mode_cfg = BFA_MODE_HBA;
drivers/scsi/bfa/bfa_ioc.c
2387
ioc->ad_cap_bm = BFA_CM_HBA;
drivers/scsi/bfa/bfa_ioc.c
2391
ioc->asic_gen = BFI_ASIC_GEN_CT;
drivers/scsi/bfa/bfa_ioc.c
2392
ioc->port0_mode = ioc->port1_mode = BFI_PORT_MODE_ETH;
drivers/scsi/bfa/bfa_ioc.c
2393
ioc->asic_mode = BFI_ASIC_MODE_ETH;
drivers/scsi/bfa/bfa_ioc.c
2394
ioc->port_mode = ioc->port_mode_cfg = BFA_MODE_CNA;
drivers/scsi/bfa/bfa_ioc.c
2395
ioc->ad_cap_bm = BFA_CM_CNA;
drivers/scsi/bfa/bfa_ioc.c
2399
ioc->asic_gen = BFI_ASIC_GEN_CT;
drivers/scsi/bfa/bfa_ioc.c
2400
ioc->fcmode = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2401
ioc->port_mode = ioc->port_mode_cfg = BFA_MODE_HBA;
drivers/scsi/bfa/bfa_ioc.c
2402
ioc->ad_cap_bm = BFA_CM_HBA;
drivers/scsi/bfa/bfa_ioc.c
2407
ioc->asic_gen = BFI_ASIC_GEN_CT2;
drivers/scsi/bfa/bfa_ioc.c
2410
ioc->asic_mode = BFI_ASIC_MODE_FC16;
drivers/scsi/bfa/bfa_ioc.c
2411
ioc->fcmode = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2412
ioc->port_mode = ioc->port_mode_cfg = BFA_MODE_HBA;
drivers/scsi/bfa/bfa_ioc.c
2413
ioc->ad_cap_bm = BFA_CM_HBA;
drivers/scsi/bfa/bfa_ioc.c
2415
ioc->port0_mode = ioc->port1_mode = BFI_PORT_MODE_ETH;
drivers/scsi/bfa/bfa_ioc.c
2416
ioc->asic_mode = BFI_ASIC_MODE_ETH;
drivers/scsi/bfa/bfa_ioc.c
2418
ioc->port_mode =
drivers/scsi/bfa/bfa_ioc.c
2419
ioc->port_mode_cfg = BFA_MODE_CNA;
drivers/scsi/bfa/bfa_ioc.c
2420
ioc->ad_cap_bm = BFA_CM_CNA;
drivers/scsi/bfa/bfa_ioc.c
2422
ioc->port_mode =
drivers/scsi/bfa/bfa_ioc.c
2423
ioc->port_mode_cfg = BFA_MODE_NIC;
drivers/scsi/bfa/bfa_ioc.c
2424
ioc->ad_cap_bm = BFA_CM_NIC;
drivers/scsi/bfa/bfa_ioc.c
2436
if (ioc->asic_gen == BFI_ASIC_GEN_CB)
drivers/scsi/bfa/bfa_ioc.c
2437
bfa_ioc_set_cb_hwif(ioc);
drivers/scsi/bfa/bfa_ioc.c
2438
else if (ioc->asic_gen == BFI_ASIC_GEN_CT)
drivers/scsi/bfa/bfa_ioc.c
2439
bfa_ioc_set_ct_hwif(ioc);
drivers/scsi/bfa/bfa_ioc.c
2441
WARN_ON(ioc->asic_gen != BFI_ASIC_GEN_CT2);
drivers/scsi/bfa/bfa_ioc.c
2442
bfa_ioc_set_ct2_hwif(ioc);
drivers/scsi/bfa/bfa_ioc.c
2443
bfa_ioc_ct2_poweron(ioc);
drivers/scsi/bfa/bfa_ioc.c
2446
bfa_ioc_map_port(ioc);
drivers/scsi/bfa/bfa_ioc.c
2447
bfa_ioc_reg_init(ioc);
drivers/scsi/bfa/bfa_ioc.c
2457
bfa_ioc_mem_claim(struct bfa_ioc_s *ioc, u8 *dm_kva, u64 dm_pa)
drivers/scsi/bfa/bfa_ioc.c
2462
ioc->attr_dma.kva = dm_kva;
drivers/scsi/bfa/bfa_ioc.c
2463
ioc->attr_dma.pa = dm_pa;
drivers/scsi/bfa/bfa_ioc.c
2464
ioc->attr = (struct bfi_ioc_attr_s *) dm_kva;
drivers/scsi/bfa/bfa_ioc.c
2468
bfa_ioc_enable(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2470
bfa_ioc_stats(ioc, ioc_enables);
drivers/scsi/bfa/bfa_ioc.c
2471
ioc->dbg_fwsave_once = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2473
bfa_fsm_send_event(ioc, IOC_E_ENABLE);
drivers/scsi/bfa/bfa_ioc.c
2477
bfa_ioc_disable(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2479
bfa_ioc_stats(ioc, ioc_disables);
drivers/scsi/bfa/bfa_ioc.c
2480
bfa_fsm_send_event(ioc, IOC_E_DISABLE);
drivers/scsi/bfa/bfa_ioc.c
2484
bfa_ioc_suspend(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2486
ioc->dbg_fwsave_once = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
2487
bfa_fsm_send_event(ioc, IOC_E_HWERROR);
drivers/scsi/bfa/bfa_ioc.c
2495
bfa_ioc_debug_memclaim(struct bfa_ioc_s *ioc, void *dbg_fwsave)
drivers/scsi/bfa/bfa_ioc.c
2497
ioc->dbg_fwsave = dbg_fwsave;
drivers/scsi/bfa/bfa_ioc.c
2498
ioc->dbg_fwsave_len = BFA_DBG_FWTRC_LEN;
drivers/scsi/bfa/bfa_ioc.c
2508
bfa_ioc_mbox_register(struct bfa_ioc_s *ioc, bfa_ioc_mbox_mcfunc_t *mcfuncs)
drivers/scsi/bfa/bfa_ioc.c
2510
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
2521
bfa_ioc_mbox_regisr(struct bfa_ioc_s *ioc, enum bfi_mclass mc,
drivers/scsi/bfa/bfa_ioc.c
2524
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
2538
bfa_ioc_mbox_queue(struct bfa_ioc_s *ioc, struct bfa_mbox_cmd_s *cmd)
drivers/scsi/bfa/bfa_ioc.c
2540
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
2554
stat = readl(ioc->ioc_regs.hfn_mbox_cmd);
drivers/scsi/bfa/bfa_ioc.c
256
bfa_ioc_sm_uninit_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2563
bfa_ioc_mbox_send(ioc, cmd->msg, sizeof(cmd->msg));
drivers/scsi/bfa/bfa_ioc.c
2570
bfa_ioc_mbox_isr(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2572
struct bfa_ioc_mbox_mod_s *mod = &ioc->mbox_mod;
drivers/scsi/bfa/bfa_ioc.c
2576
if (bfa_ioc_msgget(ioc, &m)) {
drivers/scsi/bfa/bfa_ioc.c
2582
bfa_ioc_isr(ioc, &m);
drivers/scsi/bfa/bfa_ioc.c
2592
bfa_ioc_lpu_read_stat(ioc);
drivers/scsi/bfa/bfa_ioc.c
2597
bfa_ioc_mbox_poll(ioc);
drivers/scsi/bfa/bfa_ioc.c
2601
bfa_ioc_error_isr(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2603
bfa_ioc_stats(ioc, ioc_hbfails);
drivers/scsi/bfa/bfa_ioc.c
2604
ioc->stats.hb_count = ioc->hb_count;
drivers/scsi/bfa/bfa_ioc.c
2605
bfa_fsm_send_event(ioc, IOC_E_HWERROR);
drivers/scsi/bfa/bfa_ioc.c
2612
bfa_ioc_is_disabled(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2614
return bfa_fsm_cmp_state(ioc, bfa_ioc_sm_disabling) ||
drivers/scsi/bfa/bfa_ioc.c
2615
bfa_fsm_cmp_state(ioc, bfa_ioc_sm_disabled);
drivers/scsi/bfa/bfa_ioc.c
2622
bfa_ioc_fw_mismatch(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2624
return bfa_fsm_cmp_state(ioc, bfa_ioc_sm_reset) ||
drivers/scsi/bfa/bfa_ioc.c
2625
bfa_fsm_cmp_state(&ioc->iocpf, bfa_iocpf_sm_fwcheck) ||
drivers/scsi/bfa/bfa_ioc.c
2626
bfa_fsm_cmp_state(&ioc->iocpf, bfa_iocpf_sm_mismatch);
drivers/scsi/bfa/bfa_ioc.c
2634
bfa_ioc_adapter_is_disabled(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2638
if (!bfa_fsm_cmp_state(ioc, bfa_ioc_sm_disabled))
drivers/scsi/bfa/bfa_ioc.c
264
bfa_ioc_sm_uninit(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
2641
ioc_state = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc.c
2645
if (ioc->pcidev.device_id != BFA_PCI_DEVICE_ID_FC_8G1P) {
drivers/scsi/bfa/bfa_ioc.c
2646
ioc_state = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc.c
2658
bfa_ioc_reset_fwstate(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
266
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
2660
bfa_ioc_set_cur_ioc_fwstate(ioc, BFI_IOC_UNINIT);
drivers/scsi/bfa/bfa_ioc.c
2661
bfa_ioc_set_alt_ioc_fwstate(ioc, BFI_IOC_UNINIT);
drivers/scsi/bfa/bfa_ioc.c
2666
bfa_ioc_get_adapter_attr(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.c
2671
ioc_attr = ioc->attr;
drivers/scsi/bfa/bfa_ioc.c
2673
bfa_ioc_get_adapter_serial_num(ioc, ad_attr->serial_num);
drivers/scsi/bfa/bfa_ioc.c
2674
bfa_ioc_get_adapter_fw_ver(ioc, ad_attr->fw_ver);
drivers/scsi/bfa/bfa_ioc.c
2675
bfa_ioc_get_adapter_optrom_ver(ioc, ad_attr->optrom_ver);
drivers/scsi/bfa/bfa_ioc.c
2676
bfa_ioc_get_adapter_manufacturer(ioc, ad_attr->manufacturer);
drivers/scsi/bfa/bfa_ioc.c
2680
ad_attr->nports = bfa_ioc_get_nports(ioc);
drivers/scsi/bfa/bfa_ioc.c
2681
ad_attr->max_speed = bfa_ioc_speed_sup(ioc);
drivers/scsi/bfa/bfa_ioc.c
2683
bfa_ioc_get_adapter_model(ioc, ad_attr->model);
drivers/scsi/bfa/bfa_ioc.c
2685
bfa_ioc_get_adapter_model(ioc, ad_attr->model_descr);
drivers/scsi/bfa/bfa_ioc.c
2695
ad_attr->pwwn = ioc->attr->pwwn;
drivers/scsi/bfa/bfa_ioc.c
2696
ad_attr->mac = bfa_ioc_get_mac(ioc);
drivers/scsi/bfa/bfa_ioc.c
270
bfa_fsm_set_state(ioc, bfa_ioc_sm_reset);
drivers/scsi/bfa/bfa_ioc.c
2703
bfa_ioc_get_pci_chip_rev(ioc, ad_attr->hw_ver);
drivers/scsi/bfa/bfa_ioc.c
2705
ad_attr->cna_capable = bfa_ioc_is_cna(ioc);
drivers/scsi/bfa/bfa_ioc.c
2707
!bfa_ioc_is_cna(ioc) && !ad_attr->is_mezz;
drivers/scsi/bfa/bfa_ioc.c
2715
bfa_ioc_get_type(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2717
if (ioc->clscode == BFI_PCIFN_CLASS_ETH)
drivers/scsi/bfa/bfa_ioc.c
2720
WARN_ON(ioc->clscode != BFI_PCIFN_CLASS_FC);
drivers/scsi/bfa/bfa_ioc.c
2722
return (ioc->attr->port_mode == BFI_PORT_MODE_FC)
drivers/scsi/bfa/bfa_ioc.c
2727
bfa_ioc_get_adapter_serial_num(struct bfa_ioc_s *ioc, char *serial_num)
drivers/scsi/bfa/bfa_ioc.c
2731
(void *)ioc->attr->brcd_serialnum,
drivers/scsi/bfa/bfa_ioc.c
2736
bfa_ioc_get_adapter_fw_ver(struct bfa_ioc_s *ioc, char *fw_ver)
drivers/scsi/bfa/bfa_ioc.c
2739
memcpy(fw_ver, ioc->attr->fw_version, BFA_VERSION_LEN);
drivers/scsi/bfa/bfa_ioc.c
274
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
2743
bfa_ioc_get_pci_chip_rev(struct bfa_ioc_s *ioc, char *chip_rev)
drivers/scsi/bfa/bfa_ioc.c
2753
chip_rev[4] = ioc->attr->asic_rev;
drivers/scsi/bfa/bfa_ioc.c
2758
bfa_ioc_get_adapter_optrom_ver(struct bfa_ioc_s *ioc, char *optrom_ver)
drivers/scsi/bfa/bfa_ioc.c
2761
memcpy(optrom_ver, ioc->attr->optrom_version,
drivers/scsi/bfa/bfa_ioc.c
2766
bfa_ioc_get_adapter_manufacturer(struct bfa_ioc_s *ioc, char *manufacturer)
drivers/scsi/bfa/bfa_ioc.c
2773
bfa_ioc_get_adapter_model(struct bfa_ioc_s *ioc, char *model)
drivers/scsi/bfa/bfa_ioc.c
2776
u8 nports = bfa_ioc_get_nports(ioc);
drivers/scsi/bfa/bfa_ioc.c
2781
ioc_attr = ioc->attr;
drivers/scsi/bfa/bfa_ioc.c
2783
if (bfa_asic_id_ct2(ioc->pcidev.device_id) &&
drivers/scsi/bfa/bfa_ioc.c
2793
bfa_ioc_get_state(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2796
enum bfa_ioc_state ioc_st = bfa_ioc_sm_to_state(ioc_sm_table, ioc->fsm);
drivers/scsi/bfa/bfa_ioc.c
2801
iocpf_st = bfa_iocpf_sm_to_state(iocpf_sm_table, ioc->iocpf.fsm);
drivers/scsi/bfa/bfa_ioc.c
281
bfa_ioc_sm_reset_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
283
bfa_fsm_set_state(&ioc->iocpf, bfa_iocpf_sm_reset);
drivers/scsi/bfa/bfa_ioc.c
2833
bfa_ioc_get_attr(struct bfa_ioc_s *ioc, struct bfa_ioc_attr_s *ioc_attr)
drivers/scsi/bfa/bfa_ioc.c
2837
ioc_attr->state = bfa_ioc_get_state(ioc);
drivers/scsi/bfa/bfa_ioc.c
2838
ioc_attr->port_id = bfa_ioc_portid(ioc);
drivers/scsi/bfa/bfa_ioc.c
2839
ioc_attr->port_mode = ioc->port_mode;
drivers/scsi/bfa/bfa_ioc.c
2840
ioc_attr->port_mode_cfg = ioc->port_mode_cfg;
drivers/scsi/bfa/bfa_ioc.c
2841
ioc_attr->cap_bm = ioc->ad_cap_bm;
drivers/scsi/bfa/bfa_ioc.c
2843
ioc_attr->ioc_type = bfa_ioc_get_type(ioc);
drivers/scsi/bfa/bfa_ioc.c
2845
bfa_ioc_get_adapter_attr(ioc, &ioc_attr->adapter_attr);
drivers/scsi/bfa/bfa_ioc.c
2847
ioc_attr->pci_attr.device_id = bfa_ioc_devid(ioc);
drivers/scsi/bfa/bfa_ioc.c
2848
ioc_attr->pci_attr.pcifn = bfa_ioc_pcifn(ioc);
drivers/scsi/bfa/bfa_ioc.c
2849
ioc_attr->def_fn = (bfa_ioc_pcifn(ioc) == bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
2850
bfa_ioc_get_pci_chip_rev(ioc, ioc_attr->pci_attr.chip_rev);
drivers/scsi/bfa/bfa_ioc.c
2854
bfa_ioc_get_mac(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2859
if (bfa_ioc_get_type(ioc) == BFA_IOC_TYPE_FCoE)
drivers/scsi/bfa/bfa_ioc.c
2860
return ioc->attr->fcoe_mac;
drivers/scsi/bfa/bfa_ioc.c
2862
return ioc->attr->mac;
drivers/scsi/bfa/bfa_ioc.c
2866
bfa_ioc_get_mfg_mac(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2870
m = ioc->attr->mfg_mac;
drivers/scsi/bfa/bfa_ioc.c
2871
if (bfa_mfg_is_old_wwn_mac_model(ioc->attr->card_type))
drivers/scsi/bfa/bfa_ioc.c
2872
m.mac[MAC_ADDRLEN - 1] += bfa_ioc_pcifn(ioc);
drivers/scsi/bfa/bfa_ioc.c
2875
bfa_ioc_pcifn(ioc));
drivers/scsi/bfa/bfa_ioc.c
2884
bfa_ioc_aen_post(struct bfa_ioc_s *ioc, enum bfa_ioc_aen_event event)
drivers/scsi/bfa/bfa_ioc.c
2886
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
2894
ioc_type = bfa_ioc_get_type(ioc);
drivers/scsi/bfa/bfa_ioc.c
2897
aen_entry->aen_data.ioc.pwwn = ioc->attr->pwwn;
drivers/scsi/bfa/bfa_ioc.c
290
bfa_ioc_sm_reset(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
2900
aen_entry->aen_data.ioc.pwwn = ioc->attr->pwwn;
drivers/scsi/bfa/bfa_ioc.c
2901
aen_entry->aen_data.ioc.mac = bfa_ioc_get_mac(ioc);
drivers/scsi/bfa/bfa_ioc.c
2904
aen_entry->aen_data.ioc.mac = bfa_ioc_get_mac(ioc);
drivers/scsi/bfa/bfa_ioc.c
2912
aen_entry->aen_data.ioc.ioc_type = ioc_type;
drivers/scsi/bfa/bfa_ioc.c
2913
bfad_im_post_vendor_event(aen_entry, bfad, ++ioc->ioc_aen_seq,
drivers/scsi/bfa/bfa_ioc.c
292
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
2921
bfa_ioc_debug_fwsave(struct bfa_ioc_s *ioc, void *trcdata, int *trclen)
drivers/scsi/bfa/bfa_ioc.c
2925
if (ioc->dbg_fwsave_len == 0)
drivers/scsi/bfa/bfa_ioc.c
2929
if (tlen > ioc->dbg_fwsave_len)
drivers/scsi/bfa/bfa_ioc.c
2930
tlen = ioc->dbg_fwsave_len;
drivers/scsi/bfa/bfa_ioc.c
2932
memcpy(trcdata, ioc->dbg_fwsave, tlen);
drivers/scsi/bfa/bfa_ioc.c
2942
bfa_ioc_debug_fwtrc(struct bfa_ioc_s *ioc, void *trcdata, int *trclen)
drivers/scsi/bfa/bfa_ioc.c
2944
u32 loff = BFA_DBG_FWTRC_OFF(bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
2948
bfa_trc(ioc, *trclen);
drivers/scsi/bfa/bfa_ioc.c
2954
status = bfa_ioc_smem_read(ioc, trcdata, loff, tlen);
drivers/scsi/bfa/bfa_ioc.c
296
bfa_fsm_set_state(ioc, bfa_ioc_sm_enabling);
drivers/scsi/bfa/bfa_ioc.c
2960
bfa_ioc_send_fwsync(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2966
bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
2967
req->clscode = cpu_to_be16(ioc->clscode);
drivers/scsi/bfa/bfa_ioc.c
2968
bfa_ioc_mbox_queue(ioc, &cmd);
drivers/scsi/bfa/bfa_ioc.c
2972
bfa_ioc_fwsync(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
2976
bfa_ioc_send_fwsync(ioc);
drivers/scsi/bfa/bfa_ioc.c
2989
while (bfa_ioc_mbox_cmd_pending(ioc) && fwsync_iter > 0)
drivers/scsi/bfa/bfa_ioc.c
2997
bfa_ioc_debug_fwcore(struct bfa_ioc_s *ioc, void *buf,
drivers/scsi/bfa/bfa_ioc.c
300
bfa_ioc_disable_comp(ioc);
drivers/scsi/bfa/bfa_ioc.c
3003
u32 smem_len = BFA_IOC_FW_SMEM_SIZE(ioc);
drivers/scsi/bfa/bfa_ioc.c
3018
bfa_ioc_fwsync(ioc);
drivers/scsi/bfa/bfa_ioc.c
3023
status = bfa_ioc_smem_read(ioc, buf, loff, dlen);
drivers/scsi/bfa/bfa_ioc.c
304
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
3044
bfa_ioc_fw_stats_get(struct bfa_ioc_s *ioc, void *stats)
drivers/scsi/bfa/bfa_ioc.c
3047
BFI_IOC_FWSTATS_SZ * (bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
3051
if (ioc->stats_busy) {
drivers/scsi/bfa/bfa_ioc.c
3052
bfa_trc(ioc, ioc->stats_busy);
drivers/scsi/bfa/bfa_ioc.c
3055
ioc->stats_busy = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
3058
status = bfa_ioc_smem_read(ioc, stats, loff, tlen);
drivers/scsi/bfa/bfa_ioc.c
3060
ioc->stats_busy = BFA_FALSE;
drivers/scsi/bfa/bfa_ioc.c
3065
bfa_ioc_fw_stats_clear(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
3068
BFI_IOC_FWSTATS_SZ * (bfa_ioc_portid(ioc));
drivers/scsi/bfa/bfa_ioc.c
3072
if (ioc->stats_busy) {
drivers/scsi/bfa/bfa_ioc.c
3073
bfa_trc(ioc, ioc->stats_busy);
drivers/scsi/bfa/bfa_ioc.c
3076
ioc->stats_busy = BFA_TRUE;
drivers/scsi/bfa/bfa_ioc.c
3079
status = bfa_ioc_smem_clr(ioc, loff, tlen);
drivers/scsi/bfa/bfa_ioc.c
308
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
3081
ioc->stats_busy = BFA_FALSE;
drivers/scsi/bfa/bfa_ioc.c
3089
bfa_ioc_debug_save_ftrc(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
3093
if (ioc->dbg_fwsave_once) {
drivers/scsi/bfa/bfa_ioc.c
3094
ioc->dbg_fwsave_once = BFA_FALSE;
drivers/scsi/bfa/bfa_ioc.c
3095
if (ioc->dbg_fwsave_len) {
drivers/scsi/bfa/bfa_ioc.c
3096
tlen = ioc->dbg_fwsave_len;
drivers/scsi/bfa/bfa_ioc.c
3097
bfa_ioc_debug_fwtrc(ioc, ioc->dbg_fwsave, &tlen);
drivers/scsi/bfa/bfa_ioc.c
3106
bfa_ioc_recover(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
3108
bfa_ioc_stats(ioc, ioc_hbfails);
drivers/scsi/bfa/bfa_ioc.c
3109
ioc->stats.hb_count = ioc->hb_count;
drivers/scsi/bfa/bfa_ioc.c
3110
bfa_fsm_send_event(ioc, IOC_E_HBFAIL);
drivers/scsi/bfa/bfa_ioc.c
3119
struct bfa_ioc_s *ioc = (struct bfa_ioc_s *) ioc_arg;
drivers/scsi/bfa/bfa_ioc.c
3121
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
3122
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_TIMEOUT);
drivers/scsi/bfa/bfa_ioc.c
3128
struct bfa_ioc_s *ioc = (struct bfa_ioc_s *) ioc_arg;
drivers/scsi/bfa/bfa_ioc.c
3130
bfa_ioc_hw_sem_get(ioc);
drivers/scsi/bfa/bfa_ioc.c
3134
bfa_ioc_poll_fwinit(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
3136
u32 fwstate = bfa_ioc_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc.c
3138
bfa_trc(ioc, fwstate);
drivers/scsi/bfa/bfa_ioc.c
314
bfa_ioc_sm_enabling_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
3141
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FWREADY);
drivers/scsi/bfa/bfa_ioc.c
3145
if (ioc->iocpf.poll_time >= (3 * BFA_IOC_TOV))
drivers/scsi/bfa/bfa_ioc.c
3146
bfa_iocpf_timeout(ioc);
drivers/scsi/bfa/bfa_ioc.c
3148
ioc->iocpf.poll_time += BFA_IOC_POLL_TOV;
drivers/scsi/bfa/bfa_ioc.c
3149
bfa_iocpf_poll_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
3156
struct bfa_ioc_s *ioc = (struct bfa_ioc_s *) ioc_arg;
drivers/scsi/bfa/bfa_ioc.c
3158
bfa_ioc_poll_fwinit(ioc);
drivers/scsi/bfa/bfa_ioc.c
316
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_ENABLE);
drivers/scsi/bfa/bfa_ioc.c
324
bfa_ioc_sm_enabling(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
326
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
3264
bfa_trc(ablk->ioc, msg->mh.msg_id);
drivers/scsi/bfa/bfa_ioc.c
3279
ablk->ioc->port_mode_cfg = rsp->port_mode;
drivers/scsi/bfa/bfa_ioc.c
330
bfa_fsm_set_state(ioc, bfa_ioc_sm_getattr);
drivers/scsi/bfa/bfa_ioc.c
3311
bfa_trc(ablk->ioc, event);
drivers/scsi/bfa/bfa_ioc.c
3350
bfa_ablk_attach(struct bfa_ablk_s *ablk, struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
3352
ablk->ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
3354
bfa_ioc_mbox_regisr(ablk->ioc, BFI_MC_ABLK, bfa_ablk_isr, ablk);
drivers/scsi/bfa/bfa_ioc.c
3357
list_add_tail(&ablk->ioc_notify.qe, &ablk->ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
336
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3368
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3369
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
337
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/scsi/bfa/bfa_ioc.c
3374
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3385
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3387
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
339
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_INITFAIL);
drivers/scsi/bfa/bfa_ioc.c
3400
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3401
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3406
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3417
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3422
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
343
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3433
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3434
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3439
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
344
bfa_fsm_set_state(ioc, bfa_ioc_sm_hwfail);
drivers/scsi/bfa/bfa_ioc.c
3449
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3451
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
3462
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3463
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3468
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3478
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
348
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/scsi/bfa/bfa_ioc.c
3482
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
3493
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3494
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3499
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3509
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3514
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
352
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
3525
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3526
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
353
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_STOP);
drivers/scsi/bfa/bfa_ioc.c
3531
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3541
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3545
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
3555
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3556
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3561
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3571
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3572
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
3582
if (!bfa_ioc_is_operational(ablk->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
3583
bfa_trc(ablk->ioc, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
3588
bfa_trc(ablk->ioc, BFA_STATUS_DEVBUSY);
drivers/scsi/bfa/bfa_ioc.c
3598
bfa_ioc_portid(ablk->ioc));
drivers/scsi/bfa/bfa_ioc.c
3599
bfa_ioc_mbox_queue(ablk->ioc, &ablk->mb);
drivers/scsi/bfa/bfa_ioc.c
360
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
366
bfa_ioc_sm_getattr_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
368
bfa_ioc_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
3685
struct bfad_s *bfad = (struct bfad_s *)sfp->ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
369
bfa_ioc_send_getattr(ioc);
drivers/scsi/bfa/bfa_ioc.c
3696
aen_entry->aen_data.port.ioc_type = bfa_ioc_get_type(sfp->ioc);
drivers/scsi/bfa/bfa_ioc.c
3697
aen_entry->aen_data.port.pwwn = sfp->ioc->attr->pwwn;
drivers/scsi/bfa/bfa_ioc.c
3698
aen_entry->aen_data.port.mac = bfa_ioc_get_mac(sfp->ioc);
drivers/scsi/bfa/bfa_ioc.c
3723
bfad_im_post_vendor_event(aen_entry, bfad, ++sfp->ioc->ioc_aen_seq,
drivers/scsi/bfa/bfa_ioc.c
3739
bfa_ioc_portid(sfp->ioc));
drivers/scsi/bfa/bfa_ioc.c
3742
bfa_ioc_mbox_queue(sfp->ioc, &sfp->mbcmd);
drivers/scsi/bfa/bfa_ioc.c
376
bfa_ioc_sm_getattr(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
378
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
382
bfa_ioc_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
383
bfa_fsm_set_state(ioc, bfa_ioc_sm_op);
drivers/scsi/bfa/bfa_ioc.c
388
bfa_ioc_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
391
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
392
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/scsi/bfa/bfa_ioc.c
394
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_GETATTRFAIL);
drivers/scsi/bfa/bfa_ioc.c
398
bfa_ioc_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
399
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/scsi/bfa/bfa_ioc.c
3996
bfa_sfp_attach(struct bfa_sfp_s *sfp, struct bfa_ioc_s *ioc, void *dev,
drivers/scsi/bfa/bfa_ioc.c
4000
sfp->ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
4016
bfa_ioc_mbox_regisr(sfp->ioc, BFI_MC_SFP, bfa_sfp_intr, sfp);
drivers/scsi/bfa/bfa_ioc.c
4019
list_add_tail(&sfp->ioc_notify.qe, &sfp->ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
4049
if (!bfa_ioc_is_operational(sfp->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
406
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
4079
if (!bfa_ioc_is_operational(sfp->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
411
bfa_ioc_sm_op_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
4114
if (!bfa_ioc_is_operational(sfp->ioc))
drivers/scsi/bfa/bfa_ioc.c
4118
if (bfa_mfg_is_mezz(sfp->ioc->attr->card_type))
drivers/scsi/bfa/bfa_ioc.c
413
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
415
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_OK);
drivers/scsi/bfa/bfa_ioc.c
416
bfa_ioc_event_notify(ioc, BFA_IOC_E_ENABLED);
drivers/scsi/bfa/bfa_ioc.c
4167
bfa_flash_aen_audit_post(struct bfa_ioc_s *ioc, enum bfa_audit_aen_event event,
drivers/scsi/bfa/bfa_ioc.c
417
bfa_ioc_hb_monitor(ioc);
drivers/scsi/bfa/bfa_ioc.c
4170
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
4177
aen_entry->aen_data.audit.pwwn = ioc->attr->pwwn;
drivers/scsi/bfa/bfa_ioc.c
4182
bfad_im_post_vendor_event(aen_entry, bfad, ++ioc->ioc_aen_seq,
drivers/scsi/bfa/bfa_ioc.c
419
bfa_ioc_aen_post(ioc, BFA_IOC_AEN_ENABLE);
drivers/scsi/bfa/bfa_ioc.c
4228
bfa_ioc_portid(flash->ioc));
drivers/scsi/bfa/bfa_ioc.c
423
bfa_ioc_sm_op(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
4231
bfa_ioc_mbox_queue(flash->ioc, &flash->mb);
drivers/scsi/bfa/bfa_ioc.c
425
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
4257
bfa_ioc_portid(flash->ioc));
drivers/scsi/bfa/bfa_ioc.c
4260
bfa_ioc_mbox_queue(flash->ioc, &flash->mb);
drivers/scsi/bfa/bfa_ioc.c
4286
bfa_ioc_portid(flash->ioc));
drivers/scsi/bfa/bfa_ioc.c
4288
bfa_ioc_mbox_queue(flash->ioc, &flash->mb);
drivers/scsi/bfa/bfa_ioc.c
4306
bfa_ioc_portid(flash->ioc));
drivers/scsi/bfa/bfa_ioc.c
4307
bfa_ioc_mbox_queue(flash->ioc, &flash->mb);
drivers/scsi/bfa/bfa_ioc.c
432
bfa_hb_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
433
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/scsi/bfa/bfa_ioc.c
438
bfa_hb_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
441
if (ioc->iocpf.auto_recover)
drivers/scsi/bfa/bfa_ioc.c
4416
bfa_ioc_aen_post(flash->ioc, BFA_IOC_AEN_FWCFG_ERROR);
drivers/scsi/bfa/bfa_ioc.c
442
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail_retry);
drivers/scsi/bfa/bfa_ioc.c
4421
bfa_ioc_aen_post(flash->ioc,
drivers/scsi/bfa/bfa_ioc.c
444
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/scsi/bfa/bfa_ioc.c
4455
bfa_flash_attach(struct bfa_flash_s *flash, struct bfa_ioc_s *ioc, void *dev,
drivers/scsi/bfa/bfa_ioc.c
4458
flash->ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
446
bfa_ioc_fail_notify(ioc);
drivers/scsi/bfa/bfa_ioc.c
4464
bfa_ioc_mbox_regisr(flash->ioc, BFI_MC_FLASH, bfa_flash_intr, flash);
drivers/scsi/bfa/bfa_ioc.c
4467
list_add_tail(&flash->ioc_notify.qe, &flash->ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
449
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FAIL);
drivers/scsi/bfa/bfa_ioc.c
4514
if (!bfa_ioc_is_operational(flash->ioc))
drivers/scsi/bfa/bfa_ioc.c
453
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
4550
if (!bfa_ioc_is_operational(flash->ioc))
drivers/scsi/bfa/bfa_ioc.c
4565
bfa_flash_aen_audit_post(flash->ioc, BFA_AUDIT_AEN_FLASH_ERASE,
drivers/scsi/bfa/bfa_ioc.c
459
bfa_ioc_sm_disabling_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
4595
if (!bfa_ioc_is_operational(flash->ioc))
drivers/scsi/bfa/bfa_ioc.c
461
struct bfad_s *bfad = (struct bfad_s *)ioc->bfa->bfad;
drivers/scsi/bfa/bfa_ioc.c
462
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_DISABLE);
drivers/scsi/bfa/bfa_ioc.c
464
bfa_ioc_aen_post(ioc, BFA_IOC_AEN_DISABLE);
drivers/scsi/bfa/bfa_ioc.c
4652
if (!bfa_ioc_is_operational(flash->ioc))
drivers/scsi/bfa/bfa_ioc.c
471
bfa_ioc_sm_disabling(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
473
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
4737
struct bfa_ioc_s *ioc = diag->ioc;
drivers/scsi/bfa/bfa_ioc.c
4742
pgnum = PSS_SMEM_PGNUM(ioc->ioc_regs.smem_pg0, loff);
drivers/scsi/bfa/bfa_ioc.c
4743
writel(pgnum, ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
4749
bfa_mem_read(ioc->ioc_regs.smem_page_start, loff);
drivers/scsi/bfa/bfa_ioc.c
4754
bfa_ioc_reset_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc.c
477
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabled);
drivers/scsi/bfa/bfa_ioc.c
4813
bfa_ioc_portid(diag->ioc));
drivers/scsi/bfa/bfa_ioc.c
4816
bfa_ioc_mbox_queue(diag->ioc, &diag->fwping.mbcmd);
drivers/scsi/bfa/bfa_ioc.c
486
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_FAIL);
drivers/scsi/bfa/bfa_ioc.c
4884
bfa_ioc_portid(diag->ioc));
drivers/scsi/bfa/bfa_ioc.c
4886
bfa_ioc_mbox_queue(diag->ioc, &diag->tsensor.mbcmd);
drivers/scsi/bfa/bfa_ioc.c
490
bfa_fsm_set_state(ioc, bfa_ioc_sm_hwfail);
drivers/scsi/bfa/bfa_ioc.c
491
bfa_ioc_disable_comp(ioc);
drivers/scsi/bfa/bfa_ioc.c
4939
bfa_ioc_portid(diag->ioc));
drivers/scsi/bfa/bfa_ioc.c
495
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
4955
msg->portid = bfa_ioc_portid(diag->ioc);
drivers/scsi/bfa/bfa_ioc.c
4960
bfa_ioc_mbox_queue(diag->ioc, &diag->ledtest.mbcmd);
drivers/scsi/bfa/bfa_ioc.c
4982
bfa_ioc_portid(diag->ioc));
drivers/scsi/bfa/bfa_ioc.c
4986
bfa_ioc_mbox_queue(diag->ioc, &diag->beacon.mbcmd);
drivers/scsi/bfa/bfa_ioc.c
503
bfa_ioc_sm_disabled_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
5046
if (!bfa_ioc_adapter_is_disabled(diag->ioc))
drivers/scsi/bfa/bfa_ioc.c
505
bfa_ioc_disable_comp(ioc);
drivers/scsi/bfa/bfa_ioc.c
5061
bfa_ioc_boot(diag->ioc, BFI_FWBOOT_TYPE_MEMTEST, BFI_FWBOOT_ENV_OS);
drivers/scsi/bfa/bfa_ioc.c
5063
memtest_tov = (bfa_ioc_asic_gen(diag->ioc) == BFI_ASIC_GEN_CT2) ?
drivers/scsi/bfa/bfa_ioc.c
5065
bfa_timer_begin(diag->ioc->timer_mod, &diag->timer,
drivers/scsi/bfa/bfa_ioc.c
509
bfa_ioc_sm_disabled(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
5091
if (!bfa_ioc_is_operational(diag->ioc))
drivers/scsi/bfa/bfa_ioc.c
5094
if (bfa_asic_id_ct2(bfa_ioc_devid((diag->ioc))) &&
drivers/scsi/bfa/bfa_ioc.c
5095
((diag->ioc)->clscode == BFI_PCIFN_CLASS_ETH))
drivers/scsi/bfa/bfa_ioc.c
511
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
5144
if (!bfa_ioc_is_operational(diag->ioc))
drivers/scsi/bfa/bfa_ioc.c
515
bfa_fsm_set_state(ioc, bfa_ioc_sm_enabling);
drivers/scsi/bfa/bfa_ioc.c
5173
if (!bfa_ioc_is_operational(diag->ioc))
drivers/scsi/bfa/bfa_ioc.c
519
ioc->cbfn->disable_cbfn(ioc->bfa);
drivers/scsi/bfa/bfa_ioc.c
5207
if (!bfa_ioc_is_operational(diag->ioc))
drivers/scsi/bfa/bfa_ioc.c
523
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
524
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_STOP);
drivers/scsi/bfa/bfa_ioc.c
5240
bfa_diag_attach(struct bfa_diag_s *diag, struct bfa_ioc_s *ioc, void *dev,
drivers/scsi/bfa/bfa_ioc.c
5244
diag->ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
5253
bfa_ioc_mbox_regisr(diag->ioc, BFI_MC_DIAG, bfa_diag_intr, diag);
drivers/scsi/bfa/bfa_ioc.c
5256
list_add_tail(&diag->ioc_notify.qe, &diag->ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
528
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
5285
return (phy->ioc->attr->card_type == BFA_MFG_TYPE_LIGHTNING);
drivers/scsi/bfa/bfa_ioc.c
5324
bfa_ioc_portid(phy->ioc));
drivers/scsi/bfa/bfa_ioc.c
5326
bfa_ioc_mbox_queue(phy->ioc, &phy->mb);
drivers/scsi/bfa/bfa_ioc.c
534
bfa_ioc_sm_fail_retry_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
5354
bfa_ioc_portid(phy->ioc));
drivers/scsi/bfa/bfa_ioc.c
536
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
5363
bfa_ioc_mbox_queue(phy->ioc, &phy->mb);
drivers/scsi/bfa/bfa_ioc.c
5388
bfa_ioc_portid(phy->ioc));
drivers/scsi/bfa/bfa_ioc.c
5390
bfa_ioc_mbox_queue(phy->ioc, &phy->mb);
drivers/scsi/bfa/bfa_ioc.c
5407
bfa_ioc_portid(phy->ioc));
drivers/scsi/bfa/bfa_ioc.c
5409
bfa_ioc_mbox_queue(phy->ioc, &phy->mb);
drivers/scsi/bfa/bfa_ioc.c
543
bfa_ioc_sm_fail_retry(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
5437
bfa_phy_attach(struct bfa_phy_s *phy, struct bfa_ioc_s *ioc, void *dev,
drivers/scsi/bfa/bfa_ioc.c
5440
phy->ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
5446
bfa_ioc_mbox_regisr(phy->ioc, BFI_MC_PHY, bfa_phy_intr, phy);
drivers/scsi/bfa/bfa_ioc.c
5449
list_add_tail(&phy->ioc_notify.qe, &phy->ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
545
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
5481
bfa_phy_busy(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
5485
rb = bfa_ioc_bar0(ioc);
drivers/scsi/bfa/bfa_ioc.c
549
bfa_fsm_set_state(ioc, bfa_ioc_sm_getattr);
drivers/scsi/bfa/bfa_ioc.c
5509
if (!bfa_ioc_is_operational(phy->ioc))
drivers/scsi/bfa/bfa_ioc.c
5512
if (phy->op_busy || bfa_phy_busy(phy->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
5549
if (!bfa_ioc_is_operational(phy->ioc))
drivers/scsi/bfa/bfa_ioc.c
5552
if (phy->op_busy || bfa_phy_busy(phy->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
557
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
558
bfa_fsm_set_state(ioc, bfa_ioc_sm_fail);
drivers/scsi/bfa/bfa_ioc.c
5593
if (!bfa_ioc_is_operational(phy->ioc))
drivers/scsi/bfa/bfa_ioc.c
560
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_INITFAIL);
drivers/scsi/bfa/bfa_ioc.c
5600
if (phy->op_busy || bfa_phy_busy(phy->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
564
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
5644
if (!bfa_ioc_is_operational(phy->ioc))
drivers/scsi/bfa/bfa_ioc.c
565
bfa_fsm_set_state(ioc, bfa_ioc_sm_hwfail);
drivers/scsi/bfa/bfa_ioc.c
5651
if (phy->op_busy || bfa_phy_busy(phy->ioc)) {
drivers/scsi/bfa/bfa_ioc.c
572
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/scsi/bfa/bfa_ioc.c
576
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
577
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_STOP);
drivers/scsi/bfa/bfa_ioc.c
581
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
5867
bfa_ioc_suspend(&dconf->bfa->ioc);
drivers/scsi/bfa/bfa_ioc.c
587
bfa_ioc_sm_fail_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
589
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
596
bfa_ioc_sm_fail(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
598
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
603
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
6043
dconf->instance = bfa->ioc.port_id;
drivers/scsi/bfa/bfa_ioc.c
607
bfa_fsm_set_state(ioc, bfa_ioc_sm_disabling);
drivers/scsi/bfa/bfa_ioc.c
611
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
612
bfa_fsm_send_event(&ioc->iocpf, IOCPF_E_STOP);
drivers/scsi/bfa/bfa_ioc.c
6199
bfi_h2i_set(msg->mh, BFI_MC_FRU, msg_type, bfa_ioc_portid(fru->ioc));
drivers/scsi/bfa/bfa_ioc.c
6203
bfa_ioc_mbox_queue(fru->ioc, &fru->mb);
drivers/scsi/bfa/bfa_ioc.c
622
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
6226
bfi_h2i_set(msg->mh, BFI_MC_FRU, msg_type, bfa_ioc_portid(fru->ioc));
drivers/scsi/bfa/bfa_ioc.c
6228
bfa_ioc_mbox_queue(fru->ioc, &fru->mb);
drivers/scsi/bfa/bfa_ioc.c
6256
bfa_fru_attach(struct bfa_fru_s *fru, struct bfa_ioc_s *ioc, void *dev,
drivers/scsi/bfa/bfa_ioc.c
6259
fru->ioc = ioc;
drivers/scsi/bfa/bfa_ioc.c
6265
bfa_ioc_mbox_regisr(fru->ioc, BFI_MC_FRU, bfa_fru_intr, fru);
drivers/scsi/bfa/bfa_ioc.c
6268
list_add_tail(&fru->ioc_notify.qe, &fru->ioc->notify_q);
drivers/scsi/bfa/bfa_ioc.c
627
bfa_ioc_sm_hwfail_entry(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc.c
629
bfa_trc(ioc, 0);
drivers/scsi/bfa/bfa_ioc.c
6319
if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2 &&
drivers/scsi/bfa/bfa_ioc.c
6320
fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK2)
drivers/scsi/bfa/bfa_ioc.c
6323
if (fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK)
drivers/scsi/bfa/bfa_ioc.c
6326
if (!bfa_ioc_is_operational(fru->ioc))
drivers/scsi/bfa/bfa_ioc.c
633
bfa_ioc_sm_hwfail(struct bfa_ioc_s *ioc, enum ioc_event event)
drivers/scsi/bfa/bfa_ioc.c
635
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
6369
if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2)
drivers/scsi/bfa/bfa_ioc.c
6372
if (fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK &&
drivers/scsi/bfa/bfa_ioc.c
6373
fru->ioc->attr->card_type != BFA_MFG_TYPE_CHINOOK2)
drivers/scsi/bfa/bfa_ioc.c
6376
if (!bfa_ioc_is_operational(fru->ioc))
drivers/scsi/bfa/bfa_ioc.c
639
ioc->cbfn->enable_cbfn(ioc->bfa, BFA_STATUS_IOC_FAILURE);
drivers/scsi/bfa/bfa_ioc.c
6408
if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2)
drivers/scsi/bfa/bfa_ioc.c
6411
if (!bfa_ioc_is_operational(fru->ioc))
drivers/scsi/bfa/bfa_ioc.c
6414
if (fru->ioc->attr->card_type == BFA_MFG_TYPE_CHINOOK ||
drivers/scsi/bfa/bfa_ioc.c
6415
fru->ioc->attr->card_type == BFA_MFG_TYPE_CHINOOK2)
drivers/scsi/bfa/bfa_ioc.c
643
ioc->cbfn->disable_cbfn(ioc->bfa);
drivers/scsi/bfa/bfa_ioc.c
6442
if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2)
drivers/scsi/bfa/bfa_ioc.c
6445
if (!bfa_ioc_is_operational(fru->ioc))
drivers/scsi/bfa/bfa_ioc.c
647
bfa_fsm_set_state(ioc, bfa_ioc_sm_uninit);
drivers/scsi/bfa/bfa_ioc.c
6487
if (fru->ioc->asic_gen != BFI_ASIC_GEN_CT2)
drivers/scsi/bfa/bfa_ioc.c
6490
if (!bfa_ioc_is_operational(fru->ioc))
drivers/scsi/bfa/bfa_ioc.c
655
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
679
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
681
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
692
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
709
r32 = readl(iocpf->ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
712
r32 = readl(iocpf->ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
716
fwstate = bfa_ioc_get_cur_ioc_fwstate(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
718
writel(1, iocpf->ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
722
bfa_ioc_fwver_get(iocpf->ioc, &fwhdr);
drivers/scsi/bfa/bfa_ioc.c
725
writel(1, iocpf->ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
732
pgnum = PSS_SMEM_PGNUM(iocpf->ioc->ioc_regs.smem_pg0, loff);
drivers/scsi/bfa/bfa_ioc.c
733
writel(pgnum, iocpf->ioc->ioc_regs.host_page_num_fn);
drivers/scsi/bfa/bfa_ioc.c
736
bfa_mem_write(iocpf->ioc->ioc_regs.smem_page_start, loff, 0);
drivers/scsi/bfa/bfa_ioc.c
740
bfa_trc(iocpf->ioc, fwstate);
drivers/scsi/bfa/bfa_ioc.c
741
bfa_trc(iocpf->ioc, swab32(fwhdr.exec));
drivers/scsi/bfa/bfa_ioc.c
742
bfa_ioc_set_cur_ioc_fwstate(iocpf->ioc, BFI_IOC_UNINIT);
drivers/scsi/bfa/bfa_ioc.c
743
bfa_ioc_set_alt_ioc_fwstate(iocpf->ioc, BFI_IOC_UNINIT);
drivers/scsi/bfa/bfa_ioc.c
748
bfa_ioc_ownership_reset(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
753
writel(1, iocpf->ioc->ioc_regs.ioc_init_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
756
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
765
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
767
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
771
if (bfa_ioc_firmware_lock(ioc)) {
drivers/scsi/bfa/bfa_ioc.c
772
if (bfa_ioc_sync_start(ioc)) {
drivers/scsi/bfa/bfa_ioc.c
773
bfa_ioc_sync_join(ioc);
drivers/scsi/bfa/bfa_ioc.c
776
bfa_ioc_firmware_unlock(ioc);
drivers/scsi/bfa/bfa_ioc.c
777
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
778
bfa_sem_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
781
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
788
bfa_fsm_send_event(ioc, IOC_E_HWFAILED);
drivers/scsi/bfa/bfa_ioc.c
792
bfa_sem_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
794
bfa_fsm_send_event(ioc, IOC_E_DISABLED);
drivers/scsi/bfa/bfa_ioc.c
798
bfa_sem_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
803
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
817
bfa_ioc_pf_fwmismatch(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
820
bfa_iocpf_timer_start(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
829
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
831
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
839
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
841
bfa_fsm_send_event(ioc, IOC_E_DISABLED);
drivers/scsi/bfa/bfa_ioc.c
845
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
850
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
860
bfa_ioc_hw_sem_get(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
869
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
871
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
875
if (bfa_ioc_sync_complete(ioc)) {
drivers/scsi/bfa/bfa_ioc.c
876
bfa_ioc_sync_join(ioc);
drivers/scsi/bfa/bfa_ioc.c
879
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
880
bfa_sem_timer_start(ioc);
drivers/scsi/bfa/bfa_ioc.c
886
bfa_fsm_send_event(ioc, IOC_E_HWFAILED);
drivers/scsi/bfa/bfa_ioc.c
890
bfa_sem_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
895
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
90
static void bfa_ioc_hw_sem_get(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
903
bfa_ioc_hwinit(iocpf->ioc, BFA_FALSE);
drivers/scsi/bfa/bfa_ioc.c
91
static void bfa_ioc_hwinit(struct bfa_ioc_s *ioc, bfa_boolean_t force);
drivers/scsi/bfa/bfa_ioc.c
913
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
915
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
92
static void bfa_ioc_timeout(void *ioc);
drivers/scsi/bfa/bfa_ioc.c
923
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
924
bfa_fsm_send_event(ioc, IOC_E_PFFAILED);
drivers/scsi/bfa/bfa_ioc.c
929
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
93
static void bfa_ioc_poll_fwinit(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
930
bfa_ioc_sync_leave(ioc);
drivers/scsi/bfa/bfa_ioc.c
931
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
936
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
94
static void bfa_ioc_send_enable(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
943
bfa_iocpf_timer_start(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
947
iocpf->ioc->cbfn->reset_cbfn(iocpf->ioc->bfa);
drivers/scsi/bfa/bfa_ioc.c
948
bfa_ioc_send_enable(iocpf->ioc);
drivers/scsi/bfa/bfa_ioc.c
95
static void bfa_ioc_send_disable(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
958
struct bfa_ioc_s *ioc = iocpf->ioc;
drivers/scsi/bfa/bfa_ioc.c
96
static void bfa_ioc_send_getattr(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
960
bfa_trc(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
964
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
965
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
97
static void bfa_ioc_hb_monitor(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
970
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
974
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
976
bfa_fsm_send_event(ioc, IOC_E_PFFAILED);
drivers/scsi/bfa/bfa_ioc.c
98
static void bfa_ioc_mbox_poll(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
981
bfa_iocpf_timer_stop(ioc);
drivers/scsi/bfa/bfa_ioc.c
982
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc.c
987
bfa_sm_fault(ioc, event);
drivers/scsi/bfa/bfa_ioc.c
99
static void bfa_ioc_mbox_flush(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.c
994
bfa_fsm_send_event(iocpf->ioc, IOC_E_ENABLED);
drivers/scsi/bfa/bfa_ioc.h
1004
mac_t bfa_ioc_get_mac(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
1005
mac_t bfa_ioc_get_mfg_mac(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
326
struct bfa_ioc_s *ioc;
drivers/scsi/bfa/bfa_ioc.h
371
bfa_boolean_t (*ioc_firmware_lock) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
372
void (*ioc_firmware_unlock) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
373
void (*ioc_reg_init) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
374
void (*ioc_map_port) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
375
void (*ioc_isr_mode_set) (struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
377
void (*ioc_notify_fail) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
378
void (*ioc_ownership_reset) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
379
bfa_boolean_t (*ioc_sync_start) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
380
void (*ioc_sync_join) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
381
void (*ioc_sync_leave) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
382
void (*ioc_sync_ack) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
383
bfa_boolean_t (*ioc_sync_complete) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
384
bfa_boolean_t (*ioc_lpu_read_stat) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
385
void (*ioc_set_fwstate) (struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
387
enum bfi_ioc_state (*ioc_get_fwstate) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
388
void (*ioc_set_alt_fwstate) (struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
390
enum bfi_ioc_state (*ioc_get_alt_fwstate) (struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
428
struct bfa_ioc_s *ioc;
drivers/scsi/bfa/bfa_ioc.h
448
struct bfa_ioc_s *ioc;
drivers/scsi/bfa/bfa_ioc.h
476
void bfa_sfp_attach(struct bfa_sfp_s *sfp, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
499
struct bfa_ioc_s *ioc; /* back pointer to ioc */
drivers/scsi/bfa/bfa_ioc.h
538
void bfa_flash_attach(struct bfa_flash_s *flash, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
635
struct bfa_ioc_s *ioc;
drivers/scsi/bfa/bfa_ioc.h
660
void bfa_diag_attach(struct bfa_diag_s *diag, struct bfa_ioc_s *ioc, void *dev,
drivers/scsi/bfa/bfa_ioc.h
692
struct bfa_ioc_s *ioc; /* back pointer to ioc */
drivers/scsi/bfa/bfa_ioc.h
715
bfa_boolean_t bfa_phy_busy(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
730
void bfa_phy_attach(struct bfa_phy_s *phy, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
742
struct bfa_ioc_s *ioc; /* back pointer to ioc */
drivers/scsi/bfa/bfa_ioc.h
780
void bfa_fru_attach(struct bfa_fru_s *fru, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
881
void bfa_ioc_mbox_queue(struct bfa_ioc_s *ioc, struct bfa_mbox_cmd_s *cmd);
drivers/scsi/bfa/bfa_ioc.h
882
void bfa_ioc_mbox_register(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
884
void bfa_ioc_mbox_isr(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
885
void bfa_ioc_mbox_send(struct bfa_ioc_s *ioc, void *ioc_msg, int len);
drivers/scsi/bfa/bfa_ioc.h
886
bfa_boolean_t bfa_ioc_msgget(struct bfa_ioc_s *ioc, void *mbmsg);
drivers/scsi/bfa/bfa_ioc.h
887
void bfa_ioc_mbox_regisr(struct bfa_ioc_s *ioc, enum bfi_mclass mc,
drivers/scsi/bfa/bfa_ioc.h
898
bfa_status_t bfa_ioc_pll_init(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
915
void bfa_ioc_set_cb_hwif(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
916
void bfa_ioc_set_ct_hwif(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
917
void bfa_ioc_set_ct2_hwif(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
918
void bfa_ioc_ct2_poweron(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
920
void bfa_ioc_attach(struct bfa_ioc_s *ioc, void *bfa,
drivers/scsi/bfa/bfa_ioc.h
922
void bfa_ioc_detach(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
923
void bfa_ioc_suspend(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
924
void bfa_ioc_pci_init(struct bfa_ioc_s *ioc, struct bfa_pcidev_s *pcidev,
drivers/scsi/bfa/bfa_ioc.h
926
void bfa_ioc_mem_claim(struct bfa_ioc_s *ioc, u8 *dm_kva, u64 dm_pa);
drivers/scsi/bfa/bfa_ioc.h
927
void bfa_ioc_enable(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
928
void bfa_ioc_disable(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
929
bfa_boolean_t bfa_ioc_intx_claim(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
931
bfa_status_t bfa_ioc_boot(struct bfa_ioc_s *ioc, u32 boot_type,
drivers/scsi/bfa/bfa_ioc.h
933
void bfa_ioc_isr(struct bfa_ioc_s *ioc, struct bfi_mbmsg_s *msg);
drivers/scsi/bfa/bfa_ioc.h
934
void bfa_ioc_error_isr(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
935
bfa_boolean_t bfa_ioc_is_operational(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
936
bfa_boolean_t bfa_ioc_is_disabled(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
937
bfa_boolean_t bfa_ioc_is_acq_addr(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
938
bfa_boolean_t bfa_ioc_fw_mismatch(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
939
bfa_boolean_t bfa_ioc_adapter_is_disabled(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
940
void bfa_ioc_reset_fwstate(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
941
enum bfa_ioc_type_e bfa_ioc_get_type(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
942
void bfa_ioc_get_adapter_serial_num(struct bfa_ioc_s *ioc, char *serial_num);
drivers/scsi/bfa/bfa_ioc.h
943
void bfa_ioc_get_adapter_fw_ver(struct bfa_ioc_s *ioc, char *fw_ver);
drivers/scsi/bfa/bfa_ioc.h
944
void bfa_ioc_get_adapter_optrom_ver(struct bfa_ioc_s *ioc, char *optrom_ver);
drivers/scsi/bfa/bfa_ioc.h
945
void bfa_ioc_get_adapter_model(struct bfa_ioc_s *ioc, char *model);
drivers/scsi/bfa/bfa_ioc.h
946
void bfa_ioc_get_adapter_manufacturer(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
948
void bfa_ioc_get_pci_chip_rev(struct bfa_ioc_s *ioc, char *chip_rev);
drivers/scsi/bfa/bfa_ioc.h
949
enum bfa_ioc_state bfa_ioc_get_state(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
951
void bfa_ioc_get_attr(struct bfa_ioc_s *ioc, struct bfa_ioc_attr_s *ioc_attr);
drivers/scsi/bfa/bfa_ioc.h
952
void bfa_ioc_get_adapter_attr(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
954
void bfa_ioc_debug_memclaim(struct bfa_ioc_s *ioc, void *dbg_fwsave);
drivers/scsi/bfa/bfa_ioc.h
955
bfa_status_t bfa_ioc_debug_fwsave(struct bfa_ioc_s *ioc, void *trcdata,
drivers/scsi/bfa/bfa_ioc.h
957
bfa_status_t bfa_ioc_debug_fwtrc(struct bfa_ioc_s *ioc, void *trcdata,
drivers/scsi/bfa/bfa_ioc.h
959
bfa_status_t bfa_ioc_debug_fwcore(struct bfa_ioc_s *ioc, void *buf,
drivers/scsi/bfa/bfa_ioc.h
961
bfa_status_t bfa_ioc_fwsig_invalidate(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
963
void bfa_ioc_fwver_get(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
965
bfa_boolean_t bfa_ioc_fwver_cmp(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc.h
967
void bfa_ioc_aen_post(struct bfa_ioc_s *ioc, enum bfa_ioc_aen_event event);
drivers/scsi/bfa/bfa_ioc.h
968
bfa_status_t bfa_ioc_fw_stats_get(struct bfa_ioc_s *ioc, void *stats);
drivers/scsi/bfa/bfa_ioc.h
969
bfa_status_t bfa_ioc_fw_stats_clear(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
970
void bfa_ioc_debug_save_ftrc(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
977
void bfa_ablk_attach(struct bfa_ablk_s *ablk, struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc.h
999
bfa_status_t bfa_ioc_flash_img_get_chnk(struct bfa_ioc_s *ioc, u32 off,
drivers/scsi/bfa/bfa_ioc_cb.c
104
bfa_ioc_cb_firmware_unlock(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
112
bfa_ioc_cb_notify_fail(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
114
writel(~0U, ioc->ioc_regs.err_set);
drivers/scsi/bfa/bfa_ioc_cb.c
115
readl(ioc->ioc_regs.err_set);
drivers/scsi/bfa/bfa_ioc_cb.c
136
bfa_ioc_cb_reg_init(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
139
int pcifn = bfa_ioc_pcifn(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
141
rb = bfa_ioc_bar0(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
143
ioc->ioc_regs.hfn_mbox = rb + iocreg_fnreg[pcifn].hfn_mbox;
drivers/scsi/bfa/bfa_ioc_cb.c
144
ioc->ioc_regs.lpu_mbox = rb + iocreg_fnreg[pcifn].lpu_mbox;
drivers/scsi/bfa/bfa_ioc_cb.c
145
ioc->ioc_regs.host_page_num_fn = rb + iocreg_fnreg[pcifn].hfn_pgn;
drivers/scsi/bfa/bfa_ioc_cb.c
147
if (ioc->port_id == 0) {
drivers/scsi/bfa/bfa_ioc_cb.c
148
ioc->ioc_regs.heartbeat = rb + BFA_IOC0_HBEAT_REG;
drivers/scsi/bfa/bfa_ioc_cb.c
149
ioc->ioc_regs.ioc_fwstate = rb + BFA_IOC0_STATE_REG;
drivers/scsi/bfa/bfa_ioc_cb.c
150
ioc->ioc_regs.alt_ioc_fwstate = rb + BFA_IOC1_STATE_REG;
drivers/scsi/bfa/bfa_ioc_cb.c
152
ioc->ioc_regs.heartbeat = (rb + BFA_IOC1_HBEAT_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
153
ioc->ioc_regs.ioc_fwstate = (rb + BFA_IOC1_STATE_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
154
ioc->ioc_regs.alt_ioc_fwstate = (rb + BFA_IOC0_STATE_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
160
ioc->ioc_regs.hfn_mbox_cmd = rb + iocreg_mbcmd[pcifn].hfn;
drivers/scsi/bfa/bfa_ioc_cb.c
161
ioc->ioc_regs.lpu_mbox_cmd = rb + iocreg_mbcmd[pcifn].lpu;
drivers/scsi/bfa/bfa_ioc_cb.c
166
ioc->ioc_regs.pss_ctl_reg = (rb + PSS_CTL_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
167
ioc->ioc_regs.pss_err_status_reg = (rb + PSS_ERR_STATUS_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
168
ioc->ioc_regs.app_pll_fast_ctl_reg = (rb + APP_PLL_LCLK_CTL_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
169
ioc->ioc_regs.app_pll_slow_ctl_reg = (rb + APP_PLL_SCLK_CTL_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
174
ioc->ioc_regs.ioc_sem_reg = (rb + HOST_SEM0_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
175
ioc->ioc_regs.ioc_init_sem_reg = (rb + HOST_SEM2_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
180
ioc->ioc_regs.smem_page_start = (rb + PSS_SMEM_PAGE_START);
drivers/scsi/bfa/bfa_ioc_cb.c
181
ioc->ioc_regs.smem_pg0 = BFI_IOC_SMEM_PG0_CB;
drivers/scsi/bfa/bfa_ioc_cb.c
186
ioc->ioc_regs.err_set = (rb + ERR_SET_REG);
drivers/scsi/bfa/bfa_ioc_cb.c
194
bfa_ioc_cb_map_port(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
199
ioc->port_id = bfa_ioc_pcifn(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
201
bfa_trc(ioc, ioc->port_id);
drivers/scsi/bfa/bfa_ioc_cb.c
208
bfa_ioc_cb_isr_mode_set(struct bfa_ioc_s *ioc, bfa_boolean_t msix)
drivers/scsi/bfa/bfa_ioc_cb.c
216
bfa_ioc_cb_sync_start(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
218
u32 ioc_fwstate = readl(ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
227
writel(BFI_IOC_UNINIT, ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
228
writel(BFI_IOC_UNINIT, ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
23
static bfa_boolean_t bfa_ioc_cb_firmware_lock(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
232
return bfa_ioc_cb_sync_complete(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
239
bfa_ioc_cb_ownership_reset(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
24
static void bfa_ioc_cb_firmware_unlock(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
247
readl(ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc_cb.c
248
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc_cb.c
25
static void bfa_ioc_cb_reg_init(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
255
bfa_ioc_cb_sync_join(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
257
u32 r32 = readl(ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
258
u32 join_pos = bfa_ioc_cb_join_pos(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
26
static void bfa_ioc_cb_map_port(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
260
writel((r32 | join_pos), ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
264
bfa_ioc_cb_sync_leave(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
266
u32 r32 = readl(ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
267
u32 join_pos = bfa_ioc_cb_join_pos(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
269
writel((r32 & ~join_pos), ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
27
static void bfa_ioc_cb_isr_mode_set(struct bfa_ioc_s *ioc, bfa_boolean_t msix);
drivers/scsi/bfa/bfa_ioc_cb.c
273
bfa_ioc_cb_set_cur_ioc_fwstate(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc_cb.c
276
u32 r32 = readl(ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
279
ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
28
static void bfa_ioc_cb_notify_fail(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
283
bfa_ioc_cb_get_cur_ioc_fwstate(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
285
return (enum bfi_ioc_state)(readl(ioc->ioc_regs.ioc_fwstate) &
drivers/scsi/bfa/bfa_ioc_cb.c
29
static void bfa_ioc_cb_ownership_reset(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
290
bfa_ioc_cb_set_alt_ioc_fwstate(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc_cb.c
293
u32 r32 = readl(ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
296
ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
30
static bfa_boolean_t bfa_ioc_cb_sync_start(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
300
bfa_ioc_cb_get_alt_ioc_fwstate(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
302
return (enum bfi_ioc_state)(readl(ioc->ioc_regs.alt_ioc_fwstate) &
drivers/scsi/bfa/bfa_ioc_cb.c
307
bfa_ioc_cb_sync_ack(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
309
bfa_ioc_cb_set_cur_ioc_fwstate(ioc, BFI_IOC_FAIL);
drivers/scsi/bfa/bfa_ioc_cb.c
31
static void bfa_ioc_cb_sync_join(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
313
bfa_ioc_cb_sync_complete(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
316
fwstate = bfa_ioc_cb_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
32
static void bfa_ioc_cb_sync_leave(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
33
static void bfa_ioc_cb_sync_ack(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
34
static bfa_boolean_t bfa_ioc_cb_sync_complete(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
344
alt_fwstate = bfa_ioc_cb_get_alt_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
36
struct bfa_ioc_s *ioc, enum bfi_ioc_state fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
37
static enum bfi_ioc_state bfa_ioc_cb_get_cur_ioc_fwstate(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
39
struct bfa_ioc_s *ioc, enum bfi_ioc_state fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
40
static enum bfi_ioc_state bfa_ioc_cb_get_alt_ioc_fwstate(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
48
bfa_ioc_set_cb_hwif(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
68
ioc->ioc_hwif = &hwif_cb;
drivers/scsi/bfa/bfa_ioc_cb.c
75
bfa_ioc_cb_firmware_lock(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_cb.c
80
cur_fwstate = bfa_ioc_cb_get_cur_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
81
bfa_trc(ioc, cur_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
82
alt_fwstate = bfa_ioc_cb_get_alt_ioc_fwstate(ioc);
drivers/scsi/bfa/bfa_ioc_cb.c
83
bfa_trc(ioc, alt_fwstate);
drivers/scsi/bfa/bfa_ioc_cb.c
93
bfa_ioc_fwver_get(ioc, &fwhdr);
drivers/scsi/bfa/bfa_ioc_cb.c
94
if (!bfa_ioc_fwver_cmp(ioc, &fwhdr) &&
drivers/scsi/bfa/bfa_ioc_cb.c
96
bfa_trc(ioc, alt_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
100
bfa_trc(ioc, usecnt);
drivers/scsi/bfa/bfa_ioc_ct.c
105
bfa_ioc_ct_firmware_unlock(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
112
bfa_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
113
usecnt = readl(ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
117
writel(usecnt, ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
118
bfa_trc(ioc, usecnt);
drivers/scsi/bfa/bfa_ioc_ct.c
120
readl(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
121
writel(1, ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
128
bfa_ioc_ct_notify_fail(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
130
if (bfa_ioc_is_cna(ioc)) {
drivers/scsi/bfa/bfa_ioc_ct.c
131
writel(__FW_INIT_HALT_P, ioc->ioc_regs.ll_halt);
drivers/scsi/bfa/bfa_ioc_ct.c
132
writel(__FW_INIT_HALT_P, ioc->ioc_regs.alt_ll_halt);
drivers/scsi/bfa/bfa_ioc_ct.c
134
readl(ioc->ioc_regs.ll_halt);
drivers/scsi/bfa/bfa_ioc_ct.c
135
readl(ioc->ioc_regs.alt_ll_halt);
drivers/scsi/bfa/bfa_ioc_ct.c
137
writel(~0U, ioc->ioc_regs.err_set);
drivers/scsi/bfa/bfa_ioc_ct.c
138
readl(ioc->ioc_regs.err_set);
drivers/scsi/bfa/bfa_ioc_ct.c
183
bfa_ioc_ct_reg_init(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
186
int pcifn = bfa_ioc_pcifn(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
188
rb = bfa_ioc_bar0(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
190
ioc->ioc_regs.hfn_mbox = rb + ct_fnreg[pcifn].hfn_mbox;
drivers/scsi/bfa/bfa_ioc_ct.c
191
ioc->ioc_regs.lpu_mbox = rb + ct_fnreg[pcifn].lpu_mbox;
drivers/scsi/bfa/bfa_ioc_ct.c
192
ioc->ioc_regs.host_page_num_fn = rb + ct_fnreg[pcifn].hfn_pgn;
drivers/scsi/bfa/bfa_ioc_ct.c
194
if (ioc->port_id == 0) {
drivers/scsi/bfa/bfa_ioc_ct.c
195
ioc->ioc_regs.heartbeat = rb + BFA_IOC0_HBEAT_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
196
ioc->ioc_regs.ioc_fwstate = rb + BFA_IOC0_STATE_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
197
ioc->ioc_regs.alt_ioc_fwstate = rb + BFA_IOC1_STATE_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
198
ioc->ioc_regs.hfn_mbox_cmd = rb + ct_p0reg[pcifn].hfn;
drivers/scsi/bfa/bfa_ioc_ct.c
199
ioc->ioc_regs.lpu_mbox_cmd = rb + ct_p0reg[pcifn].lpu;
drivers/scsi/bfa/bfa_ioc_ct.c
200
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P0;
drivers/scsi/bfa/bfa_ioc_ct.c
201
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P1;
drivers/scsi/bfa/bfa_ioc_ct.c
203
ioc->ioc_regs.heartbeat = (rb + BFA_IOC1_HBEAT_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
204
ioc->ioc_regs.ioc_fwstate = (rb + BFA_IOC1_STATE_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
205
ioc->ioc_regs.alt_ioc_fwstate = rb + BFA_IOC0_STATE_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
206
ioc->ioc_regs.hfn_mbox_cmd = rb + ct_p1reg[pcifn].hfn;
drivers/scsi/bfa/bfa_ioc_ct.c
207
ioc->ioc_regs.lpu_mbox_cmd = rb + ct_p1reg[pcifn].lpu;
drivers/scsi/bfa/bfa_ioc_ct.c
208
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P1;
drivers/scsi/bfa/bfa_ioc_ct.c
209
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P0;
drivers/scsi/bfa/bfa_ioc_ct.c
215
ioc->ioc_regs.pss_ctl_reg = (rb + PSS_CTL_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
216
ioc->ioc_regs.pss_err_status_reg = (rb + PSS_ERR_STATUS_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
217
ioc->ioc_regs.app_pll_fast_ctl_reg = (rb + APP_PLL_LCLK_CTL_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
218
ioc->ioc_regs.app_pll_slow_ctl_reg = (rb + APP_PLL_SCLK_CTL_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
223
ioc->ioc_regs.ioc_sem_reg = (rb + HOST_SEM0_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
224
ioc->ioc_regs.ioc_usage_sem_reg = (rb + HOST_SEM1_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
225
ioc->ioc_regs.ioc_init_sem_reg = (rb + HOST_SEM2_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
226
ioc->ioc_regs.ioc_usage_reg = (rb + BFA_FW_USE_COUNT);
drivers/scsi/bfa/bfa_ioc_ct.c
227
ioc->ioc_regs.ioc_fail_sync = (rb + BFA_IOC_FAIL_SYNC);
drivers/scsi/bfa/bfa_ioc_ct.c
232
ioc->ioc_regs.smem_page_start = (rb + PSS_SMEM_PAGE_START);
drivers/scsi/bfa/bfa_ioc_ct.c
233
ioc->ioc_regs.smem_pg0 = BFI_IOC_SMEM_PG0_CT;
drivers/scsi/bfa/bfa_ioc_ct.c
238
ioc->ioc_regs.err_set = (rb + ERR_SET_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
242
bfa_ioc_ct2_reg_init(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
245
int port = bfa_ioc_portid(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
247
rb = bfa_ioc_bar0(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
249
ioc->ioc_regs.hfn_mbox = rb + ct2_reg[port].hfn_mbox;
drivers/scsi/bfa/bfa_ioc_ct.c
250
ioc->ioc_regs.lpu_mbox = rb + ct2_reg[port].lpu_mbox;
drivers/scsi/bfa/bfa_ioc_ct.c
251
ioc->ioc_regs.host_page_num_fn = rb + ct2_reg[port].hfn_pgn;
drivers/scsi/bfa/bfa_ioc_ct.c
252
ioc->ioc_regs.hfn_mbox_cmd = rb + ct2_reg[port].hfn;
drivers/scsi/bfa/bfa_ioc_ct.c
253
ioc->ioc_regs.lpu_mbox_cmd = rb + ct2_reg[port].lpu;
drivers/scsi/bfa/bfa_ioc_ct.c
254
ioc->ioc_regs.lpu_read_stat = rb + ct2_reg[port].lpu_read;
drivers/scsi/bfa/bfa_ioc_ct.c
257
ioc->ioc_regs.heartbeat = rb + CT2_BFA_IOC0_HBEAT_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
258
ioc->ioc_regs.ioc_fwstate = rb + CT2_BFA_IOC0_STATE_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
259
ioc->ioc_regs.alt_ioc_fwstate = rb + CT2_BFA_IOC1_STATE_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
260
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P0;
drivers/scsi/bfa/bfa_ioc_ct.c
261
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P1;
drivers/scsi/bfa/bfa_ioc_ct.c
263
ioc->ioc_regs.heartbeat = (rb + CT2_BFA_IOC1_HBEAT_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
264
ioc->ioc_regs.ioc_fwstate = (rb + CT2_BFA_IOC1_STATE_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
265
ioc->ioc_regs.alt_ioc_fwstate = rb + CT2_BFA_IOC0_STATE_REG;
drivers/scsi/bfa/bfa_ioc_ct.c
266
ioc->ioc_regs.ll_halt = rb + FW_INIT_HALT_P1;
drivers/scsi/bfa/bfa_ioc_ct.c
267
ioc->ioc_regs.alt_ll_halt = rb + FW_INIT_HALT_P0;
drivers/scsi/bfa/bfa_ioc_ct.c
273
ioc->ioc_regs.pss_ctl_reg = (rb + PSS_CTL_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
274
ioc->ioc_regs.pss_err_status_reg = (rb + PSS_ERR_STATUS_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
275
ioc->ioc_regs.app_pll_fast_ctl_reg = (rb + CT2_APP_PLL_LCLK_CTL_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
276
ioc->ioc_regs.app_pll_slow_ctl_reg = (rb + CT2_APP_PLL_SCLK_CTL_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
281
ioc->ioc_regs.ioc_sem_reg = (rb + CT2_HOST_SEM0_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
282
ioc->ioc_regs.ioc_usage_sem_reg = (rb + CT2_HOST_SEM1_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
283
ioc->ioc_regs.ioc_init_sem_reg = (rb + CT2_HOST_SEM2_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
284
ioc->ioc_regs.ioc_usage_reg = (rb + CT2_BFA_FW_USE_COUNT);
drivers/scsi/bfa/bfa_ioc_ct.c
285
ioc->ioc_regs.ioc_fail_sync = (rb + CT2_BFA_IOC_FAIL_SYNC);
drivers/scsi/bfa/bfa_ioc_ct.c
290
ioc->ioc_regs.smem_page_start = (rb + PSS_SMEM_PAGE_START);
drivers/scsi/bfa/bfa_ioc_ct.c
291
ioc->ioc_regs.smem_pg0 = BFI_IOC_SMEM_PG0_CT;
drivers/scsi/bfa/bfa_ioc_ct.c
296
ioc->ioc_regs.err_set = (rb + ERR_SET_REG);
drivers/scsi/bfa/bfa_ioc_ct.c
30
static bfa_boolean_t bfa_ioc_ct_firmware_lock(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
305
bfa_ioc_ct_map_port(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
307
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/scsi/bfa/bfa_ioc_ct.c
31
static void bfa_ioc_ct_firmware_unlock(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
314
r32 >>= FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc));
drivers/scsi/bfa/bfa_ioc_ct.c
315
ioc->port_id = (r32 & __F0_PORT_MAP_MK) >> __F0_PORT_MAP_SH;
drivers/scsi/bfa/bfa_ioc_ct.c
317
bfa_trc(ioc, bfa_ioc_pcifn(ioc));
drivers/scsi/bfa/bfa_ioc_ct.c
318
bfa_trc(ioc, ioc->port_id);
drivers/scsi/bfa/bfa_ioc_ct.c
32
static void bfa_ioc_ct_notify_fail(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
322
bfa_ioc_ct2_map_port(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
324
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/scsi/bfa/bfa_ioc_ct.c
328
ioc->port_id = ((r32 & __FC_LL_PORT_MAP__MK) >> __FC_LL_PORT_MAP__SH);
drivers/scsi/bfa/bfa_ioc_ct.c
33
static void bfa_ioc_ct_ownership_reset(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
330
bfa_trc(ioc, bfa_ioc_pcifn(ioc));
drivers/scsi/bfa/bfa_ioc_ct.c
331
bfa_trc(ioc, ioc->port_id);
drivers/scsi/bfa/bfa_ioc_ct.c
338
bfa_ioc_ct_isr_mode_set(struct bfa_ioc_s *ioc, bfa_boolean_t msix)
drivers/scsi/bfa/bfa_ioc_ct.c
34
static bfa_boolean_t bfa_ioc_ct_sync_start(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
340
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/scsi/bfa/bfa_ioc_ct.c
344
bfa_trc(ioc, r32);
drivers/scsi/bfa/bfa_ioc_ct.c
346
mode = (r32 >> FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc))) &
drivers/scsi/bfa/bfa_ioc_ct.c
35
static void bfa_ioc_ct_sync_join(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
36
static void bfa_ioc_ct_sync_leave(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
360
r32 &= ~(__F0_INTX_STATUS << FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc)));
drivers/scsi/bfa/bfa_ioc_ct.c
361
r32 |= (mode << FNC_PERS_FN_SHIFT(bfa_ioc_pcifn(ioc)));
drivers/scsi/bfa/bfa_ioc_ct.c
362
bfa_trc(ioc, r32);
drivers/scsi/bfa/bfa_ioc_ct.c
368
bfa_ioc_ct2_lpu_read_stat(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
37
static void bfa_ioc_ct_sync_ack(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
372
r32 = readl(ioc->ioc_regs.lpu_read_stat);
drivers/scsi/bfa/bfa_ioc_ct.c
374
writel(1, ioc->ioc_regs.lpu_read_stat);
drivers/scsi/bfa/bfa_ioc_ct.c
38
static bfa_boolean_t bfa_ioc_ct_sync_complete(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
385
bfa_ioc_ct_ownership_reset(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
388
bfa_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
389
writel(0, ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
390
readl(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
391
writel(1, ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
393
writel(0, ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
399
readl(ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
40
struct bfa_ioc_s *ioc, enum bfi_ioc_state fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
400
writel(1, ioc->ioc_regs.ioc_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
404
bfa_ioc_ct_sync_start(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
406
uint32_t r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
41
static enum bfi_ioc_state bfa_ioc_ct_get_cur_ioc_fwstate(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
416
if (sync_reqd & bfa_ioc_ct_sync_pos(ioc)) {
drivers/scsi/bfa/bfa_ioc_ct.c
417
writel(0, ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
418
writel(1, ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
419
writel(BFI_IOC_UNINIT, ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
420
writel(BFI_IOC_UNINIT, ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
424
return bfa_ioc_ct_sync_complete(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
43
struct bfa_ioc_s *ioc, enum bfi_ioc_state fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
431
bfa_ioc_ct_sync_join(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
433
uint32_t r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
434
uint32_t sync_pos = bfa_ioc_ct_sync_reqd_pos(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
436
writel((r32 | sync_pos), ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
44
static enum bfi_ioc_state bfa_ioc_ct_get_alt_ioc_fwstate(struct bfa_ioc_s *ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
440
bfa_ioc_ct_sync_leave(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
442
uint32_t r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
443
uint32_t sync_msk = bfa_ioc_ct_sync_reqd_pos(ioc) |
drivers/scsi/bfa/bfa_ioc_ct.c
444
bfa_ioc_ct_sync_pos(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
446
writel((r32 & ~sync_msk), ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
450
bfa_ioc_ct_sync_ack(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
452
uint32_t r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
454
writel((r32 | bfa_ioc_ct_sync_pos(ioc)),
drivers/scsi/bfa/bfa_ioc_ct.c
455
ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
459
bfa_ioc_ct_sync_complete(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
461
uint32_t r32 = readl(ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
476
if ((sync_reqd & bfa_ioc_ct_sync_pos(ioc)) &&
drivers/scsi/bfa/bfa_ioc_ct.c
477
!(sync_ackd & bfa_ioc_ct_sync_pos(ioc)))
drivers/scsi/bfa/bfa_ioc_ct.c
478
sync_ackd |= bfa_ioc_ct_sync_pos(ioc);
drivers/scsi/bfa/bfa_ioc_ct.c
482
ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
483
writel(BFI_IOC_FAIL, ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
484
writel(BFI_IOC_FAIL, ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
494
writel((r32 | sync_ackd), ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
503
bfa_ioc_set_ctx_hwif(struct bfa_ioc_s *ioc, struct bfa_ioc_hwif_s *hwif)
drivers/scsi/bfa/bfa_ioc_ct.c
524
bfa_ioc_set_ct_hwif(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
526
bfa_ioc_set_ctx_hwif(ioc, &hwif_ct);
drivers/scsi/bfa/bfa_ioc_ct.c
53
bfa_ioc_ct_firmware_lock(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
532
ioc->ioc_hwif = &hwif_ct;
drivers/scsi/bfa/bfa_ioc_ct.c
539
bfa_ioc_set_ct2_hwif(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
541
bfa_ioc_set_ctx_hwif(ioc, &hwif_ct2);
drivers/scsi/bfa/bfa_ioc_ct.c
548
ioc->ioc_hwif = &hwif_ct2;
drivers/scsi/bfa/bfa_ioc_ct.c
562
bfa_ioc_ct2_poweron(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
564
void __iomem *rb = ioc->pcidev.pci_bar_kva;
drivers/scsi/bfa/bfa_ioc_ct.c
575
HOSTFN_MSIX_DEFAULT * bfa_ioc_pcifn(ioc),
drivers/scsi/bfa/bfa_ioc_ct.c
577
writel(HOSTFN_MSIX_DEFAULT * bfa_ioc_pcifn(ioc),
drivers/scsi/bfa/bfa_ioc_ct.c
59
bfa_ioc_sem_get(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
60
usecnt = readl(ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
66
writel(1, ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
67
readl(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
68
writel(1, ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
69
writel(0, ioc->ioc_regs.ioc_fail_sync);
drivers/scsi/bfa/bfa_ioc_ct.c
70
bfa_trc(ioc, usecnt);
drivers/scsi/bfa/bfa_ioc_ct.c
74
ioc_fwstate = readl(ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
75
bfa_trc(ioc, ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
85
bfa_ioc_fwver_get(ioc, &fwhdr);
drivers/scsi/bfa/bfa_ioc_ct.c
86
if (!bfa_ioc_fwver_cmp(ioc, &fwhdr)) {
drivers/scsi/bfa/bfa_ioc_ct.c
87
readl(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
88
writel(1, ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
89
bfa_trc(ioc, usecnt);
drivers/scsi/bfa/bfa_ioc_ct.c
967
bfa_ioc_ct_set_cur_ioc_fwstate(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc_ct.c
97
writel(usecnt, ioc->ioc_regs.ioc_usage_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
970
writel(fwstate, ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
974
bfa_ioc_ct_get_cur_ioc_fwstate(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
976
return (enum bfi_ioc_state)readl(ioc->ioc_regs.ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
98
readl(ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_ioc_ct.c
980
bfa_ioc_ct_set_alt_ioc_fwstate(struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_ioc_ct.c
983
writel(fwstate, ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
987
bfa_ioc_ct_get_alt_ioc_fwstate(struct bfa_ioc_s *ioc)
drivers/scsi/bfa/bfa_ioc_ct.c
989
return (enum bfi_ioc_state) readl(ioc->ioc_regs.alt_ioc_fwstate);
drivers/scsi/bfa/bfa_ioc_ct.c
99
writel(1, ioc->ioc_regs.ioc_usage_sem_reg);
drivers/scsi/bfa/bfa_modules.h
62
struct bfa_ioc_s ioc; /* IOC module */
drivers/scsi/bfa/bfa_port.c
230
if (bfa_ioc_is_disabled(port->ioc)) {
drivers/scsi/bfa/bfa_port.c
235
if (!bfa_ioc_is_operational(port->ioc)) {
drivers/scsi/bfa/bfa_port.c
259
bfa_ioc_portid(port->ioc));
drivers/scsi/bfa/bfa_port.c
260
bfa_ioc_mbox_queue(port->ioc, &port->endis_mb);
drivers/scsi/bfa/bfa_port.c
286
if (bfa_ioc_is_disabled(port->ioc)) {
drivers/scsi/bfa/bfa_port.c
291
if (!bfa_ioc_is_operational(port->ioc)) {
drivers/scsi/bfa/bfa_port.c
315
bfa_ioc_portid(port->ioc));
drivers/scsi/bfa/bfa_port.c
316
bfa_ioc_mbox_queue(port->ioc, &port->endis_mb);
drivers/scsi/bfa/bfa_port.c
336
if (!bfa_ioc_is_operational(port->ioc)) {
drivers/scsi/bfa/bfa_port.c
355
bfa_ioc_portid(port->ioc));
drivers/scsi/bfa/bfa_port.c
356
bfa_ioc_mbox_queue(port->ioc, &port->stats_mb);
drivers/scsi/bfa/bfa_port.c
375
if (!bfa_ioc_is_operational(port->ioc)) {
drivers/scsi/bfa/bfa_port.c
392
bfa_ioc_portid(port->ioc));
drivers/scsi/bfa/bfa_port.c
393
bfa_ioc_mbox_queue(port->ioc, &port->stats_mb);
drivers/scsi/bfa/bfa_port.c
457
bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_port.c
463
port->ioc = ioc;
drivers/scsi/bfa/bfa_port.c
473
bfa_ioc_mbox_regisr(port->ioc, BFI_MC_PORT, bfa_port_isr, port);
drivers/scsi/bfa/bfa_port.c
476
list_add_tail(&port->ioc_notify.qe, &port->ioc->notify_q);
drivers/scsi/bfa/bfa_port.c
650
WARN_ON((cee == NULL) || (cee->ioc == NULL));
drivers/scsi/bfa/bfa_port.c
652
if (!bfa_ioc_is_operational(cee->ioc)) {
drivers/scsi/bfa/bfa_port.c
666
bfa_ioc_portid(cee->ioc));
drivers/scsi/bfa/bfa_port.c
668
bfa_ioc_mbox_queue(cee->ioc, &cee->get_cfg_mb);
drivers/scsi/bfa/bfa_port.c
690
WARN_ON((cee == NULL) || (cee->ioc == NULL));
drivers/scsi/bfa/bfa_port.c
692
if (!bfa_ioc_is_operational(cee->ioc)) {
drivers/scsi/bfa/bfa_port.c
706
bfa_ioc_portid(cee->ioc));
drivers/scsi/bfa/bfa_port.c
708
bfa_ioc_mbox_queue(cee->ioc, &cee->get_stats_mb);
drivers/scsi/bfa/bfa_port.c
729
WARN_ON((cee == NULL) || (cee->ioc == NULL));
drivers/scsi/bfa/bfa_port.c
730
if (!bfa_ioc_is_operational(cee->ioc)) {
drivers/scsi/bfa/bfa_port.c
743
bfa_ioc_portid(cee->ioc));
drivers/scsi/bfa/bfa_port.c
744
bfa_ioc_mbox_queue(cee->ioc, &cee->reset_stats_mb);
drivers/scsi/bfa/bfa_port.c
853
bfa_cee_attach(struct bfa_cee_s *cee, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_port.c
858
cee->ioc = ioc;
drivers/scsi/bfa/bfa_port.c
860
bfa_ioc_mbox_regisr(cee->ioc, BFI_MC_CEE, bfa_cee_isr, cee);
drivers/scsi/bfa/bfa_port.c
863
list_add_tail(&cee->ioc_notify.qe, &cee->ioc->notify_q);
drivers/scsi/bfa/bfa_port.h
109
struct bfa_ioc_s *ioc, void *dev);
drivers/scsi/bfa/bfa_port.h
23
struct bfa_ioc_s *ioc;
drivers/scsi/bfa/bfa_port.h
47
void bfa_port_attach(struct bfa_port_s *port, struct bfa_ioc_s *ioc,
drivers/scsi/bfa/bfa_port.h
97
struct bfa_ioc_s *ioc;
drivers/scsi/bfa/bfa_svc.c
1797
if (bfa_ioc_devid(&bfa->ioc) == BFA_PCI_DEVICE_ID_CT)
drivers/scsi/bfa/bfa_svc.c
2171
if (!bfa_ioc_get_fcmode(&fcport->bfa->ioc)) {
drivers/scsi/bfa/bfa_svc.c
3184
fcport->pwwn = fcport->bfa->ioc.attr->pwwn;
drivers/scsi/bfa/bfa_svc.c
3185
fcport->nwwn = fcport->bfa->ioc.attr->nwwn;
drivers/scsi/bfa/bfa_svc.c
3241
if (bfa_ioc_get_fcmode(&fcport->bfa->ioc))
drivers/scsi/bfa/bfa_svc.c
3486
fcport->cfg.maxfrsize = bfa_ioc_maxfrsize(&bfa->ioc);
drivers/scsi/bfa/bfa_svc.c
3487
fcport->cfg.rx_bbcredit = bfa_ioc_rx_bbcredit(&bfa->ioc);
drivers/scsi/bfa/bfa_svc.c
3488
fcport->speed_sup = bfa_ioc_speed_sup(&bfa->ioc);
drivers/scsi/bfa/bfa_svc.c
3648
if (bfa_ioc_is_disabled(&bfa->ioc))
drivers/scsi/bfa/bfa_svc.c
3664
if (bfa_ioc_is_disabled(&bfa->ioc))
drivers/scsi/bfa/bfa_svc.c
3707
if (bfa_ioc_get_type(&fcport->bfa->ioc) == BFA_IOC_TYPE_FC) {
drivers/scsi/bfa/bfa_svc.c
3710
(bfa_asic_id_ct2(bfa->ioc.pcidev.device_id)))
drivers/scsi/bfa/bfa_svc.c
3769
if (bfa_mfg_is_mezz(bfa->ioc.attr->card_type))
drivers/scsi/bfa/bfa_svc.c
3904
attr->factorypwwn = bfa->ioc.attr->mfg_pwwn;
drivers/scsi/bfa/bfa_svc.c
3905
attr->factorynwwn = bfa->ioc.attr->mfg_nwwn;
drivers/scsi/bfa/bfa_svc.c
3934
if (bfa_ioc_is_disabled(&fcport->bfa->ioc))
drivers/scsi/bfa/bfa_svc.c
3936
else if (bfa_ioc_fw_mismatch(&fcport->bfa->ioc))
drivers/scsi/bfa/bfa_svc.c
41
(bfa_ioc_is_disabled(&bfa->ioc) == BFA_TRUE))
drivers/scsi/bfa/bfa_svc.c
4128
if (bfa_ioc_get_type(&fcport->bfa->ioc) != BFA_IOC_TYPE_FC)
drivers/scsi/bfa/bfa_svc.c
4131
if (bfa_mfg_is_mezz(bfa->ioc.attr->card_type) &&
drivers/scsi/bfa/bfa_svc.c
4132
(bfa->ioc.attr->card_type != BFA_MFG_TYPE_CHINOOK))
drivers/scsi/bfa/bfa_svc.c
4146
(fcport->cfg.speed < bfa_ioc_speed_sup(&bfa->ioc)))
drivers/scsi/bfa/bfa_svc.c
4149
if (bfa_ioc_speed_sup(&bfa->ioc) < BFA_PORT_SPEED_8GBPS)
drivers/scsi/bfa/bfa_svc.c
4181
if (bfa_ioc_get_type(&fcport->bfa->ioc) != BFA_IOC_TYPE_FC)
drivers/scsi/bfa/bfa_svc.c
5862
if (bfa_ioc_get_type(&bfa->ioc) == BFA_IOC_TYPE_FC) {
drivers/scsi/bfa/bfa_svc.c
5887
(bfa_asic_id_ct2(bfa->ioc.pcidev.device_id))) {
drivers/scsi/bfa/bfa_svc.c
5893
if (bfa_mfg_is_mezz(bfa->ioc.attr->card_type)) {
drivers/scsi/bfa/bfa_svc.c
5894
if (bfa_ioc_get_type(&bfa->ioc) == BFA_IOC_TYPE_FC) {
drivers/scsi/bfa/bfa_svc.c
6540
if (bfa_mfg_is_mezz(dport->bfa->ioc.attr->card_type)) {
drivers/scsi/bfa/bfa_svc.c
6548
if (!(bfa_asic_id_ct2(dport->bfa->ioc.pcidev.device_id))) {
drivers/scsi/bfa/bfa_svc.c
6549
bfa_trc(dport->bfa, dport->bfa->ioc.pcidev.device_id);
drivers/scsi/bfa/bfa_svc.c
6568
if (bfa_ioc_get_type(&bfa->ioc) != BFA_IOC_TYPE_FC) {
drivers/scsi/bfa/bfa_svc.c
6569
bfa_trc(dport->bfa, bfa_ioc_get_type(&bfa->ioc));
drivers/scsi/bfa/bfa_svc.c
6649
if (bfa_ioc_is_disabled(&bfa->ioc))
drivers/scsi/bfa/bfa_svc.h
110
typedef void (*fcxp_send_cb_t) (struct bfa_s *ioc, struct bfa_fcxp_s *fcxp,
drivers/scsi/bfa/bfad.c
1423
bfa_ioc_suspend(&bfad->bfa.ioc);
drivers/scsi/bfa/bfad.c
1433
bfa_ioc_suspend(&bfad->bfa.ioc);
drivers/scsi/bfa/bfad.c
1559
bfa_ioc_debug_save_ftrc(&bfad->bfa.ioc);
drivers/scsi/bfa/bfad_attr.c
785
if (nports == 1 && bfa_ioc_is_cna(&bfad->bfa.ioc))
drivers/scsi/bfa/bfad_attr.c
788
else if (nports == 1 && !bfa_ioc_is_cna(&bfad->bfa.ioc))
drivers/scsi/bfa/bfad_attr.c
791
else if (nports == 2 && bfa_ioc_is_cna(&bfad->bfa.ioc))
drivers/scsi/bfa/bfad_attr.c
794
else if (nports == 2 && !bfa_ioc_is_cna(&bfad->bfa.ioc))
drivers/scsi/bfa/bfad_attr.c
798
if (nports == 1 && !bfa_ioc_is_cna(&bfad->bfa.ioc))
drivers/scsi/bfa/bfad_attr.c
801
else if (nports == 2 && !bfa_ioc_is_cna(&bfad->bfa.ioc))
drivers/scsi/bfa/bfad_bsg.c
117
bfa_ioc_get_attr(&bfad->bfa.ioc, &iocmd->ioc_attr);
drivers/scsi/bfa/bfad_bsg.c
167
iocmd->status = bfa_ioc_fw_stats_get(&bfad->bfa.ioc, iocmd_bufptr);
drivers/scsi/bfa/bfad_bsg.c
190
iocmd->status = bfa_ioc_fw_stats_clear(&bfad->bfa.ioc);
drivers/scsi/bfa/bfad_bsg.c
1955
attr->pwwn = bfad->bfa.ioc.attr->pwwn;
drivers/scsi/bfa/bfad_bsg.c
1956
attr->nwwn = bfad->bfa.ioc.attr->nwwn;
drivers/scsi/bfa/bfad_bsg.c
2041
iocmd->status = bfa_ioc_debug_fwcore(&bfad->bfa.ioc, iocmd_bufptr,
drivers/scsi/bfa/bfad_bsg.c
2057
bfad->bfa.ioc.dbg_fwsave_once = BFA_TRUE;
drivers/scsi/bfa/bfad_bsg.c
2186
BFA_FLASH_PART_BOOT, bfad->bfa.ioc.port_id,
drivers/scsi/bfa/bfad_bsg.c
2208
BFA_FLASH_PART_BOOT, bfad->bfa.ioc.port_id,
drivers/scsi/bfa/bfad_bsg.c
2250
bfad->bfa.ioc.port_id, &iocmd->cfg,
drivers/scsi/bfa/bfad_bsg.c
2273
bfad->bfa.ioc.port_id, &iocmd->cfg,
drivers/scsi/bfa/bfad_bsg.c
229
iocmd->status = bfa_ioc_fwsig_invalidate(&bfad->bfa.ioc);
drivers/scsi/bfa/bfad_bsg.c
2356
if (bfa_ioc_get_type(&bfad->bfa.ioc) == BFA_IOC_TYPE_FC) {
drivers/scsi/bfa/bfad_bsg.c
2448
WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc));
drivers/scsi/bfa/bfad_bsg.c
2478
WARN_ON(!bfa_ioc_get_fcmode(&bfad->bfa.ioc));
drivers/scsi/bfa/bfad_bsg.c
26
if (!bfa_ioc_is_disabled(&bfad->bfa.ioc)) {
drivers/scsi/bfa/bfad_bsg.c
48
if (bfa_ioc_is_disabled(&bfad->bfa.ioc)) {
drivers/scsi/bfa/bfad_debugfs.c
127
rc = bfa_ioc_debug_fwsave(&bfad->bfa.ioc,
drivers/scsi/bfa/bfad_debugfs.c
207
if ((offset + (len<<2)) > BFA_REG_ADDRMSK(&bfa->ioc))
drivers/scsi/bfa/bfad_debugfs.c
245
struct bfa_ioc_s *ioc = &bfa->ioc;
drivers/scsi/bfa/bfad_debugfs.c
279
rb = bfa_ioc_bar0(ioc);
drivers/scsi/bfa/bfad_debugfs.c
280
addr &= BFA_REG_ADDRMSK(ioc);
drivers/scsi/bfa/bfad_debugfs.c
314
struct bfa_ioc_s *ioc = &bfa->ioc;
drivers/scsi/bfa/bfad_debugfs.c
334
addr &= BFA_REG_ADDRMSK(ioc); /* offset only 17 bit and word align */
drivers/scsi/bfa/bfad_debugfs.c
345
reg_addr = (bfa_ioc_bar0(ioc)) + addr;
drivers/scsi/bfa/bfad_debugfs.c
85
rc = bfa_ioc_debug_fwtrc(&bfad->bfa.ioc,
drivers/scsi/bfa/bfad_im.c
1001
bfa_ioc_get_attr(&bfa->ioc, ioc_attr);
drivers/scsi/hpsa.c
260
BIG_IOCTL_Command_struct *ioc);
drivers/scsi/hpsa.c
6475
BIG_IOCTL_Command_struct *ioc)
drivers/scsi/hpsa.c
6490
if ((ioc->buf_size < 1) &&
drivers/scsi/hpsa.c
6491
(ioc->Request.Type.Direction != XFER_NONE))
drivers/scsi/hpsa.c
6494
if (ioc->malloc_size > MAX_KMALLOC_SIZE)
drivers/scsi/hpsa.c
6496
if (ioc->buf_size > ioc->malloc_size * SG_ENTRIES_IN_CMD)
drivers/scsi/hpsa.c
6508
left = ioc->buf_size;
drivers/scsi/hpsa.c
6509
data_ptr = ioc->buf;
drivers/scsi/hpsa.c
6511
sz = (left > ioc->malloc_size) ? ioc->malloc_size : left;
drivers/scsi/hpsa.c
6514
if (ioc->Request.Type.Direction & XFER_WRITE) {
drivers/scsi/hpsa.c
6539
memcpy(&c->Header.LUN, &ioc->LUN_info, sizeof(c->Header.LUN));
drivers/scsi/hpsa.c
6540
memcpy(&c->Request, &ioc->Request, sizeof(c->Request));
drivers/scsi/hpsa.c
6541
if (ioc->buf_size > 0) {
drivers/scsi/hpsa.c
6572
memcpy(&ioc->error_info, c->err_info, sizeof(ioc->error_info));
drivers/scsi/hpsa.c
6573
if ((ioc->Request.Type.Direction & XFER_READ) && ioc->buf_size > 0) {
drivers/scsi/hpsa.c
6577
BYTE __user *ptr = ioc->buf;
drivers/scsi/hpsa.c
6644
BIG_IOCTL_Command_struct ioc;
drivers/scsi/hpsa.c
6647
if (copy_from_user(&ioc, argp, sizeof(ioc)))
drivers/scsi/hpsa.c
6651
rc = hpsa_big_passthru_ioctl(h, &ioc);
drivers/scsi/hpsa.c
6653
if (!rc && copy_to_user(argp, &ioc, sizeof(ioc)))
drivers/scsi/megaraid/megaraid_sas_base.c
8238
struct megasas_iocpacket *ioc)
drivers/scsi/megaraid/megaraid_sas_base.c
8254
if (ioc->sge_count > MAX_IOCTL_SGE) {
drivers/scsi/megaraid/megaraid_sas_base.c
8256
ioc->sge_count, MAX_IOCTL_SGE);
drivers/scsi/megaraid/megaraid_sas_base.c
8260
if ((ioc->frame.hdr.cmd >= MFI_CMD_OP_COUNT) ||
drivers/scsi/megaraid/megaraid_sas_base.c
8261
((ioc->frame.hdr.cmd == MFI_CMD_NVME) &&
drivers/scsi/megaraid/megaraid_sas_base.c
8263
((ioc->frame.hdr.cmd == MFI_CMD_TOOLBOX) &&
drivers/scsi/megaraid/megaraid_sas_base.c
8267
ioc->frame.hdr.cmd);
drivers/scsi/megaraid/megaraid_sas_base.c
8283
memcpy(cmd->frame, ioc->frame.raw, 2 * MEGAMFI_FRAME_SIZE);
drivers/scsi/megaraid/megaraid_sas_base.c
8325
((unsigned long)cmd->frame + ioc->sgl_off);
drivers/scsi/megaraid/megaraid_sas_base.c
8328
((unsigned long)cmd->frame + ioc->sgl_off);
drivers/scsi/megaraid/megaraid_sas_base.c
8333
for (i = 0; i < ioc->sge_count; i++) {
drivers/scsi/megaraid/megaraid_sas_base.c
8334
if (!ioc->sgl[i].iov_len)
drivers/scsi/megaraid/megaraid_sas_base.c
8338
ioc->sgl[i].iov_len,
drivers/scsi/megaraid/megaraid_sas_base.c
8353
kern_sge64[i].length = cpu_to_le32(ioc->sgl[i].iov_len);
drivers/scsi/megaraid/megaraid_sas_base.c
8356
kern_sge32[i].length = cpu_to_le32(ioc->sgl[i].iov_len);
drivers/scsi/megaraid/megaraid_sas_base.c
8363
if (copy_from_user(kbuff_arr[i], ioc->sgl[i].iov_base,
drivers/scsi/megaraid/megaraid_sas_base.c
8364
(u32) (ioc->sgl[i].iov_len))) {
drivers/scsi/megaraid/megaraid_sas_base.c
8370
if (ioc->sense_len) {
drivers/scsi/megaraid/megaraid_sas_base.c
8372
if (ioc->sense_off >
drivers/scsi/megaraid/megaraid_sas_base.c
8378
sense = dma_alloc_coherent(&instance->pdev->dev, ioc->sense_len,
drivers/scsi/megaraid/megaraid_sas_base.c
8386
sense_ptr = (void *)cmd->frame + ioc->sense_off;
drivers/scsi/megaraid/megaraid_sas_base.c
8419
for (i = 0; i < ioc->sge_count; i++) {
drivers/scsi/megaraid/megaraid_sas_base.c
8420
if (copy_to_user(ioc->sgl[i].iov_base, kbuff_arr[i],
drivers/scsi/megaraid/megaraid_sas_base.c
8421
ioc->sgl[i].iov_len)) {
drivers/scsi/megaraid/megaraid_sas_base.c
8430
if (ioc->sense_len) {
drivers/scsi/megaraid/megaraid_sas_base.c
8436
sense_ptr = (void *)ioc->frame.raw + ioc->sense_off;
drivers/scsi/megaraid/megaraid_sas_base.c
8443
if (copy_to_user(uptr, sense, ioc->sense_len)) {
drivers/scsi/megaraid/megaraid_sas_base.c
8462
dma_free_coherent(&instance->pdev->dev, ioc->sense_len,
drivers/scsi/megaraid/megaraid_sas_base.c
8466
for (i = 0; i < ioc->sge_count; i++) {
drivers/scsi/megaraid/megaraid_sas_base.c
8489
struct megasas_iocpacket *ioc;
drivers/scsi/megaraid/megaraid_sas_base.c
8495
ioc = kzalloc_obj(*ioc);
drivers/scsi/megaraid/megaraid_sas_base.c
8496
if (!ioc)
drivers/scsi/megaraid/megaraid_sas_base.c
8498
size = offsetof(struct megasas_iocpacket, frame) + sizeof(ioc->frame);
drivers/scsi/megaraid/megaraid_sas_base.c
8499
if (copy_from_user(ioc, arg, size))
drivers/scsi/megaraid/megaraid_sas_base.c
8506
get_user(ioc->sgl[i].iov_len, &cioc->sgl[i].iov_len))
drivers/scsi/megaraid/megaraid_sas_base.c
8509
ioc->sgl[i].iov_base = compat_ptr(iov_base);
drivers/scsi/megaraid/megaraid_sas_base.c
8512
return ioc;
drivers/scsi/megaraid/megaraid_sas_base.c
8514
kfree(ioc);
drivers/scsi/megaraid/megaraid_sas_base.c
8522
struct megasas_iocpacket *ioc;
drivers/scsi/megaraid/megaraid_sas_base.c
8527
ioc = megasas_compat_iocpacket_get_user(user_ioc);
drivers/scsi/megaraid/megaraid_sas_base.c
8529
ioc = memdup_user(user_ioc, sizeof(struct megasas_iocpacket));
drivers/scsi/megaraid/megaraid_sas_base.c
8531
if (IS_ERR(ioc))
drivers/scsi/megaraid/megaraid_sas_base.c
8532
return PTR_ERR(ioc);
drivers/scsi/megaraid/megaraid_sas_base.c
8534
instance = megasas_lookup_instance(ioc->host_no);
drivers/scsi/megaraid/megaraid_sas_base.c
8567
error = megasas_mgmt_fw_ioctl(instance, user_ioc, ioc);
drivers/scsi/megaraid/megaraid_sas_base.c
8572
kfree(ioc);
drivers/scsi/mpi3mr/mpi3mr_debug.h
100
if (ioc->logging_level & MPI3_DEBUG_SCSI_INFO) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
101
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
104
#define dprint_scsi_err(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
106
if (ioc->logging_level & MPI3_DEBUG_SCSI_ERROR) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
107
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
110
#define dprint_scsi_command(ioc, SCMD, LOG_LEVEL) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
112
if (ioc->logging_level & LOG_LEVEL) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
117
#define dprint_bsg_info(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
119
if (ioc->logging_level & MPI3_DEBUG_BSG_INFO) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
120
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
123
#define dprint_bsg_err(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
125
if (ioc->logging_level & MPI3_DEBUG_BSG_ERROR) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
126
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
129
#define dprint_cfg_info(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
131
if (ioc->logging_level & MPI3_DEBUG_CFG_INFO) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
132
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
135
#define dprint_cfg_err(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
137
if (ioc->logging_level & MPI3_DEBUG_CFG_ERROR) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
138
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
140
#define dprint_transport_info(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
142
if (ioc->logging_level & MPI3_DEBUG_TRANSPORT_INFO) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
143
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
146
#define dprint_transport_err(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
148
if (ioc->logging_level & MPI3_DEBUG_TRANSPORT_ERROR) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
149
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
41
#define ioc_err(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
42
pr_err("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpi3mr/mpi3mr_debug.h
43
#define ioc_notice(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
44
pr_notice("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpi3mr/mpi3mr_debug.h
45
#define ioc_warn(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
46
pr_warn("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpi3mr/mpi3mr_debug.h
47
#define ioc_info(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
48
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpi3mr/mpi3mr_debug.h
50
#define dprint(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
52
if (ioc->logging_level & MPI3_DEBUG) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
53
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
56
#define dprint_event_th(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
58
if (ioc->logging_level & MPI3_DEBUG_EVENT) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
59
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
62
#define dprint_event_bh(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
64
if (ioc->logging_level & MPI3_DEBUG_EVENT_WORK_TASK) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
65
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
68
#define dprint_init(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
70
if (ioc->logging_level & MPI3_DEBUG_INIT) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
71
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
74
#define dprint_exit(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
76
if (ioc->logging_level & MPI3_DEBUG_EXIT) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
77
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
80
#define dprint_tm(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
82
if (ioc->logging_level & MPI3_DEBUG_TM) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
83
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
86
#define dprint_reply(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
88
if (ioc->logging_level & MPI3_DEBUG_REPLY) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
89
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
92
#define dprint_reset(ioc, fmt, ...) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
94
if (ioc->logging_level & MPI3_DEBUG_RESET) \
drivers/scsi/mpi3mr/mpi3mr_debug.h
95
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__); \
drivers/scsi/mpi3mr/mpi3mr_debug.h
98
#define dprint_scsi_info(ioc, fmt, ...) \
drivers/scsi/mpt3sas/mpt3sas_base.c
1011
!(ioc->logging_level & MPT_DEBUG_CONFIG)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1170
frame_sz = sizeof(Mpi2ConfigRequest_t) + ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
1194
frame_sz = sizeof(Mpi2SmpPassthroughRequest_t) + ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
1199
ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
1204
ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
1213
ioc_warn(ioc, "ioc_status: %s(0x%04x), request(0x%p),(%s)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
1225
_base_display_event_data(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1231
if (!(ioc->logging_level & MPT_DEBUG_EVENTS))
drivers/scsi/mpt3sas/mpt3sas_base.c
1253
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_base.c
1260
ioc_info(ioc, "Discovery: (%s)",
drivers/scsi/mpt3sas/mpt3sas_base.c
1285
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_base.c
1289
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_base.c
1293
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_base.c
1297
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_base.c
1316
ioc_info(ioc, "PCIE Enumeration: (%s)",
drivers/scsi/mpt3sas/mpt3sas_base.c
1333
ioc_info(ioc, "%s\n", desc);
drivers/scsi/mpt3sas/mpt3sas_base.c
134
_base_wait_on_iocstate(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1342
_base_sas_log_info(struct MPT3SAS_ADAPTER *ioc, u32 log_info)
drivers/scsi/mpt3sas/mpt3sas_base.c
1365
if (ioc->ignore_loginfos && (log_info == 0x30050000 || log_info ==
drivers/scsi/mpt3sas/mpt3sas_base.c
137
_base_get_ioc_facts(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
1377
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_base.c
1384
ioc_warn(ioc, "log_info(0x%08x): originator(%s), code(0x%02x), sub_code(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
139
_base_clear_outstanding_commands(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
1397
_base_display_reply_info(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.c
1404
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1406
ioc_err(ioc, "mpi_reply not valid at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
1413
(ioc->logging_level & MPT_DEBUG_REPLY)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1414
_base_sas_ioc_info(ioc, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
1415
mpt3sas_base_get_msg_frame(ioc, smid));
drivers/scsi/mpt3sas/mpt3sas_base.c
1420
if (ioc->logging_level & MPT_DEBUG_REPLY)
drivers/scsi/mpt3sas/mpt3sas_base.c
1421
_base_sas_log_info(ioc, loginfo);
drivers/scsi/mpt3sas/mpt3sas_base.c
1425
_base_sas_log_info(ioc, loginfo);
drivers/scsi/mpt3sas/mpt3sas_base.c
1431
mpt3sas_trigger_mpi(ioc, ioc_status, loginfo);
drivers/scsi/mpt3sas/mpt3sas_base.c
1447
mpt3sas_base_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.c
1452
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1454
return mpt3sas_check_for_pending_internal_cmds(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1456
if (ioc->base_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_base.c
1459
ioc->base_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_base.c
1461
ioc->base_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_base.c
1462
memcpy(ioc->base_cmds.reply, mpi_reply, mpi_reply->MsgLength*4);
drivers/scsi/mpt3sas/mpt3sas_base.c
1464
ioc->base_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
1466
complete(&ioc->base_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
1481
_base_async_event(struct MPT3SAS_ADAPTER *ioc, u8 msix_index, u32 reply)
drivers/scsi/mpt3sas/mpt3sas_base.c
1488
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1494
_base_display_event_data(ioc, mpi_reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1498
smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
1507
&ioc->delayed_event_ack_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
1508
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1509
ioc_info(ioc, "DELAYED: EVENT ACK: event (0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
1514
ack_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1521
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1526
mpt3sas_scsih_event_callback(ioc, msix_index, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1529
mpt3sas_ctl_event_callback(ioc, msix_index, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1535
_get_st_from_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
1540
WARN_ON(smid >= ioc->hi_priority_smid))
drivers/scsi/mpt3sas/mpt3sas_base.c
1543
cmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1558
_base_get_cb_idx(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
1561
u16 ctl_smid = ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
1564
ioc->shost->can_queue + INTERNAL_SCSIIO_FOR_DISCOVERY;
drivers/scsi/mpt3sas/mpt3sas_base.c
1566
if (smid < ioc->hi_priority_smid) {
drivers/scsi/mpt3sas/mpt3sas_base.c
157
mpt3sas_base_check_cmd_timeout(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1570
st = _get_st_from_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1574
cb_idx = ioc->ctl_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_base.c
1576
cb_idx = ioc->scsih_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_base.c
1577
} else if (smid < ioc->internal_smid) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1578
i = smid - ioc->hi_priority_smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
1579
cb_idx = ioc->hpr_lookup[i].cb_idx;
drivers/scsi/mpt3sas/mpt3sas_base.c
1580
} else if (smid <= ioc->hba_queue_depth) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1581
i = smid - ioc->internal_smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
1582
cb_idx = ioc->internal_lookup[i].cb_idx;
drivers/scsi/mpt3sas/mpt3sas_base.c
1599
mpt3sas_base_pause_mq_polling(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
1602
ioc->reply_queue_count - ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
1606
atomic_set(&ioc->io_uring_poll_queues[qid].pause, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
1612
while (atomic_read(&ioc->io_uring_poll_queues[qid].busy)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1626
mpt3sas_base_resume_mq_polling(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
1629
ioc->reply_queue_count - ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
1633
atomic_set(&ioc->io_uring_poll_queues[qid].pause, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
1643
mpt3sas_base_mask_interrupts(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
1647
ioc->mask_interrupts = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
1648
him_register = ioc->base_readl(&ioc->chip->HostInterruptMask);
drivers/scsi/mpt3sas/mpt3sas_base.c
165
ioc_err(ioc, "Command %s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
1650
writel(him_register, &ioc->chip->HostInterruptMask);
drivers/scsi/mpt3sas/mpt3sas_base.c
1651
ioc->base_readl(&ioc->chip->HostInterruptMask);
drivers/scsi/mpt3sas/mpt3sas_base.c
1661
mpt3sas_base_unmask_interrupts(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
1665
him_register = ioc->base_readl(&ioc->chip->HostInterruptMask);
drivers/scsi/mpt3sas/mpt3sas_base.c
1667
writel(him_register, &ioc->chip->HostInterruptMask);
drivers/scsi/mpt3sas/mpt3sas_base.c
1668
ioc->mask_interrupts = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
1707
struct MPT3SAS_ADAPTER *ioc = reply_q->ioc;
drivers/scsi/mpt3sas/mpt3sas_base.c
1736
cb_idx = _base_get_cb_idx(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1739
rc = mpt_callbacks[cb_idx](ioc, smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
1742
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1748
if (reply > ioc->reply_dma_max_address ||
drivers/scsi/mpt3sas/mpt3sas_base.c
1749
reply < ioc->reply_dma_min_address)
drivers/scsi/mpt3sas/mpt3sas_base.c
1752
cb_idx = _base_get_cb_idx(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
1755
rc = mpt_callbacks[cb_idx](ioc, smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
1758
_base_display_reply_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1761
mpt3sas_base_free_smid(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1765
_base_async_event(ioc, msix_index, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
1770
ioc->reply_free_host_index =
drivers/scsi/mpt3sas/mpt3sas_base.c
1771
(ioc->reply_free_host_index ==
drivers/scsi/mpt3sas/mpt3sas_base.c
1772
(ioc->reply_free_queue_depth - 1)) ?
drivers/scsi/mpt3sas/mpt3sas_base.c
1773
0 : ioc->reply_free_host_index + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
1774
ioc->reply_free[ioc->reply_free_host_index] =
drivers/scsi/mpt3sas/mpt3sas_base.c
1776
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
1777
_base_clone_reply_to_sys_mem(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
1779
ioc->reply_free_host_index);
drivers/scsi/mpt3sas/mpt3sas_base.c
1780
writel(ioc->reply_free_host_index,
drivers/scsi/mpt3sas/mpt3sas_base.c
1781
&ioc->chip->ReplyFreeHostIndex);
drivers/scsi/mpt3sas/mpt3sas_base.c
1788
(ioc->reply_post_queue_depth - 1)) ? 0 :
drivers/scsi/mpt3sas/mpt3sas_base.c
1799
if (completed_cmds >= ioc->thresh_hold) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1800
if (ioc->combined_reply_queue) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1804
ioc->replyPostRegisterIndex[msix_index/8]);
drivers/scsi/mpt3sas/mpt3sas_base.c
1809
&ioc->chip->ReplyPostHostIndex);
drivers/scsi/mpt3sas/mpt3sas_base.c
183
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_base.c
1834
if (ioc->is_warpdrive) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1836
ioc->reply_post_host_index[msix_index]);
drivers/scsi/mpt3sas/mpt3sas_base.c
1856
if (ioc->combined_reply_queue)
drivers/scsi/mpt3sas/mpt3sas_base.c
1859
ioc->replyPostRegisterIndex[msix_index/8]);
drivers/scsi/mpt3sas/mpt3sas_base.c
1863
&ioc->chip->ReplyPostHostIndex);
drivers/scsi/mpt3sas/mpt3sas_base.c
1877
struct MPT3SAS_ADAPTER *ioc =
drivers/scsi/mpt3sas/mpt3sas_base.c
1881
int qid = queue_num - ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
1883
if (atomic_read(&ioc->io_uring_poll_queues[qid].pause) ||
drivers/scsi/mpt3sas/mpt3sas_base.c
1884
!atomic_add_unless(&ioc->io_uring_poll_queues[qid].busy, 1, 1))
drivers/scsi/mpt3sas/mpt3sas_base.c
1887
reply_q = ioc->io_uring_poll_queues[qid].reply_q;
drivers/scsi/mpt3sas/mpt3sas_base.c
1890
atomic_dec(&ioc->io_uring_poll_queues[qid].busy);
drivers/scsi/mpt3sas/mpt3sas_base.c
1906
struct MPT3SAS_ADAPTER *ioc = reply_q->ioc;
drivers/scsi/mpt3sas/mpt3sas_base.c
1908
if (ioc->mask_interrupts)
drivers/scsi/mpt3sas/mpt3sas_base.c
191
list_for_each_entry(ioc, &mpt3sas_ioc_list, list)
drivers/scsi/mpt3sas/mpt3sas_base.c
192
ioc->fwfault_debug = mpt3sas_fwfault_debug;
drivers/scsi/mpt3sas/mpt3sas_base.c
1960
_base_init_irqpolls(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
1964
if (list_empty(&ioc->reply_queue_list))
drivers/scsi/mpt3sas/mpt3sas_base.c
1967
list_for_each_entry_safe(reply_q, next, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
1971
ioc->hba_queue_depth/4, _base_irqpoll);
drivers/scsi/mpt3sas/mpt3sas_base.c
1974
reply_q->os_irq = pci_irq_vector(ioc->pdev,
drivers/scsi/mpt3sas/mpt3sas_base.c
1986
_base_is_controller_msix_enabled(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
1988
return (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
1989
MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX) && ioc->msix_enable;
drivers/scsi/mpt3sas/mpt3sas_base.c
2002
mpt3sas_base_sync_reply_irqs(struct MPT3SAS_ADAPTER *ioc, u8 poll)
drivers/scsi/mpt3sas/mpt3sas_base.c
2009
if (!_base_is_controller_msix_enabled(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
2012
list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
2013
if (ioc->shost_recovery || ioc->remove_host ||
drivers/scsi/mpt3sas/mpt3sas_base.c
2014
ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_base.c
2025
synchronize_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index));
drivers/scsi/mpt3sas/mpt3sas_base.c
2099
_base_build_zero_len_sge(struct MPT3SAS_ADAPTER *ioc, void *paddr)
drivers/scsi/mpt3sas/mpt3sas_base.c
2105
ioc->base_add_sg_single(paddr, flags_length, -1);
drivers/scsi/mpt3sas/mpt3sas_base.c
2152
_base_get_chain_buffer_tracker(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
2159
atomic_read(&ioc->chain_lookup[smid - 1].chain_offset);
drivers/scsi/mpt3sas/mpt3sas_base.c
2161
if (chain_offset == ioc->chains_needed_per_io)
drivers/scsi/mpt3sas/mpt3sas_base.c
2164
chain_req = &ioc->chain_lookup[smid - 1].chains_per_smid[chain_offset];
drivers/scsi/mpt3sas/mpt3sas_base.c
2165
atomic_inc(&ioc->chain_lookup[smid - 1].chain_offset);
drivers/scsi/mpt3sas/mpt3sas_base.c
2180
_base_build_sg(struct MPT3SAS_ADAPTER *ioc, void *psge,
drivers/scsi/mpt3sas/mpt3sas_base.c
2187
_base_build_zero_len_sge(ioc, psge);
drivers/scsi/mpt3sas/mpt3sas_base.c
2196
ioc->base_add_sg_single(psge, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2200
psge += ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
2207
ioc->base_add_sg_single(psge, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2214
ioc->base_add_sg_single(psge, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2221
ioc->base_add_sg_single(psge, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2284
_base_build_nvme_prp(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
2312
prp_page = (__le64 *)mpt3sas_base_get_pcie_sgl(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
2313
prp_page_dma = mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
2319
page_mask = ioc->page_size - 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
2369
entry_len = ioc->page_size - offset;
drivers/scsi/mpt3sas/mpt3sas_base.c
2389
if (length > ioc->page_size) {
drivers/scsi/mpt3sas/mpt3sas_base.c
2451
base_make_prp_nvme(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
2466
nvme_pg_size = max_t(u32, ioc->page_size, NVME_PRP_PAGE_SIZE);
drivers/scsi/mpt3sas/mpt3sas_base.c
248
_base_clone_reply_to_sys_mem(struct MPT3SAS_ADAPTER *ioc, u32 reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
2505
curr_buff = mpt3sas_base_get_pcie_sgl(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
2506
msg_dma = mpt3sas_base_get_pcie_sgl_dma(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
256
u16 cmd_credit = ioc->facts.RequestCredit + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
257
void __iomem *reply_free_iomem = (void __iomem *)ioc->chip +
drivers/scsi/mpt3sas/mpt3sas_base.c
2578
base_is_prp_possible(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
259
(cmd_credit * ioc->request_sz) + (index * sizeof(u32));
drivers/scsi/mpt3sas/mpt3sas_base.c
2616
_base_check_pcie_native_sgl(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
2628
if (!base_is_prp_possible(ioc, pcie_device,
drivers/scsi/mpt3sas/mpt3sas_base.c
2637
base_make_prp_nvme(ioc, scmd, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_base.c
2676
_base_build_zero_len_sge_ieee(struct MPT3SAS_ADAPTER *ioc, void *paddr)
drivers/scsi/mpt3sas/mpt3sas_base.c
2716
_base_build_sg_scmd(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
2733
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
2752
sges_in_segment = ioc->max_sges_in_main_message;
drivers/scsi/mpt3sas/mpt3sas_base.c
2757
(sges_in_segment * ioc->sge_size))/4;
drivers/scsi/mpt3sas/mpt3sas_base.c
2762
ioc->base_add_sg_single(sg_local,
drivers/scsi/mpt3sas/mpt3sas_base.c
2766
ioc->base_add_sg_single(sg_local, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2769
sg_local += ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
2776
chain_req = _base_get_chain_buffer_tracker(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_base.c
2783
ioc->max_sges_in_chain_message) ? sges_left :
drivers/scsi/mpt3sas/mpt3sas_base.c
2784
ioc->max_sges_in_chain_message;
drivers/scsi/mpt3sas/mpt3sas_base.c
2786
0 : (sges_in_segment * ioc->sge_size)/4;
drivers/scsi/mpt3sas/mpt3sas_base.c
2787
chain_length = sges_in_segment * ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
2791
chain_length += ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
2793
ioc->base_add_sg_single(sg_local, chain_flags | chain_offset |
drivers/scsi/mpt3sas/mpt3sas_base.c
2802
ioc->base_add_sg_single(sg_local,
drivers/scsi/mpt3sas/mpt3sas_base.c
2807
ioc->base_add_sg_single(sg_local, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2811
sg_local += ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
2816
chain_req = _base_get_chain_buffer_tracker(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_base.c
2829
ioc->base_add_sg_single(sg_local, sgl_flags_end_buffer |
drivers/scsi/mpt3sas/mpt3sas_base.c
2832
ioc->base_add_sg_single(sg_local, sgl_flags |
drivers/scsi/mpt3sas/mpt3sas_base.c
2835
sg_local += ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
2857
_base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
2873
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
2884
if ((pcie_device) && (_base_check_pcie_native_sgl(ioc, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_base.c
2896
sges_in_segment = (ioc->request_sz -
drivers/scsi/mpt3sas/mpt3sas_base.c
2897
offsetof(Mpi25SCSIIORequest_t, SGL))/ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
2902
(offsetof(Mpi25SCSIIORequest_t, SGL)/ioc->sge_size_ieee);
drivers/scsi/mpt3sas/mpt3sas_base.c
2909
sg_local += ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
2915
chain_req = _base_get_chain_buffer_tracker(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_base.c
2922
ioc->max_sges_in_chain_message) ? sges_left :
drivers/scsi/mpt3sas/mpt3sas_base.c
2923
ioc->max_sges_in_chain_message;
drivers/scsi/mpt3sas/mpt3sas_base.c
2926
chain_length = sges_in_segment * ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
2928
chain_length += ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
2941
sg_local += ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
2946
chain_req = _base_get_chain_buffer_tracker(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_base.c
2966
sg_local += ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
2983
_base_build_sg_ieee(struct MPT3SAS_ADAPTER *ioc, void *psge,
drivers/scsi/mpt3sas/mpt3sas_base.c
2990
_base_build_zero_len_sge_ieee(ioc, psge);
drivers/scsi/mpt3sas/mpt3sas_base.c
3002
psge += ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
3033
_base_config_dma_addressing(struct MPT3SAS_ADAPTER *ioc, struct pci_dev *pdev)
drivers/scsi/mpt3sas/mpt3sas_base.c
3038
if (ioc->is_mcpu_endpoint || sizeof(dma_addr_t) == 4) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3039
ioc->dma_mask = 32;
drivers/scsi/mpt3sas/mpt3sas_base.c
3042
} else if (ioc->hba_mpi_version_belonged > MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3043
ioc->dma_mask = 63;
drivers/scsi/mpt3sas/mpt3sas_base.c
3046
ioc->dma_mask = 64;
drivers/scsi/mpt3sas/mpt3sas_base.c
3050
if (ioc->use_32bit_dma)
drivers/scsi/mpt3sas/mpt3sas_base.c
3057
if (ioc->dma_mask > 32) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3058
ioc->base_add_sg_single = &_base_add_sg_single_64;
drivers/scsi/mpt3sas/mpt3sas_base.c
3059
ioc->sge_size = sizeof(Mpi2SGESimple64_t);
drivers/scsi/mpt3sas/mpt3sas_base.c
3061
ioc->base_add_sg_single = &_base_add_sg_single_32;
drivers/scsi/mpt3sas/mpt3sas_base.c
3062
ioc->sge_size = sizeof(Mpi2SGESimple32_t);
drivers/scsi/mpt3sas/mpt3sas_base.c
3066
ioc_info(ioc, "%d BIT PCI BUS DMA ADDRESSING SUPPORTED, total mem (%ld kB)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3067
ioc->dma_mask, convert_to_kb(s.totalram));
drivers/scsi/mpt3sas/mpt3sas_base.c
3080
_base_check_enable_msix(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3088
if (ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2008 &&
drivers/scsi/mpt3sas/mpt3sas_base.c
3089
ioc->pdev->revision == SAS2_PCI_DEVICE_B0_REVISION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3093
base = pci_find_capability(ioc->pdev, PCI_CAP_ID_MSIX);
drivers/scsi/mpt3sas/mpt3sas_base.c
3095
dfailprintk(ioc, ioc_info(ioc, "msix not supported\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
3101
if (ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2004 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3102
ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2008 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3103
ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2108_1 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3104
ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2108_2 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3105
ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2108_3 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3106
ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2116_1 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3107
ioc->pdev->device == MPI2_MFGPAGE_DEVID_SAS2116_2)
drivers/scsi/mpt3sas/mpt3sas_base.c
3108
ioc->msix_vector_count = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3110
pci_read_config_word(ioc->pdev, base + 2, &message_control);
drivers/scsi/mpt3sas/mpt3sas_base.c
3111
ioc->msix_vector_count = (message_control & 0x3FF) + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3113
dinitprintk(ioc, ioc_info(ioc, "msix is supported, vector_count(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3114
ioc->msix_vector_count));
drivers/scsi/mpt3sas/mpt3sas_base.c
312
_base_get_chain(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
3125
mpt3sas_base_free_irq(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3130
if (list_empty(&ioc->reply_queue_list))
drivers/scsi/mpt3sas/mpt3sas_base.c
3133
list_for_each_entry_safe(reply_q, next, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3140
if (ioc->smp_affinity_enable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3141
irq = pci_irq_vector(ioc->pdev, reply_q->msix_index);
drivers/scsi/mpt3sas/mpt3sas_base.c
3144
free_irq(pci_irq_vector(ioc->pdev, reply_q->msix_index),
drivers/scsi/mpt3sas/mpt3sas_base.c
3158
_base_request_irq(struct MPT3SAS_ADAPTER *ioc, u8 index)
drivers/scsi/mpt3sas/mpt3sas_base.c
316
u16 cmd_credit = ioc->facts.RequestCredit + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3160
struct pci_dev *pdev = ioc->pdev;
drivers/scsi/mpt3sas/mpt3sas_base.c
3166
ioc_err(ioc, "unable to allocate memory %zu!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3170
reply_q->ioc = ioc;
drivers/scsi/mpt3sas/mpt3sas_base.c
3175
if (index >= ioc->iopoll_q_start_index) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3176
qid = index - ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
3178
ioc->driver_name, ioc->id, qid);
drivers/scsi/mpt3sas/mpt3sas_base.c
318
base_chain = (void __iomem *)ioc->chip + MPI_FRAME_START_OFFSET +
drivers/scsi/mpt3sas/mpt3sas_base.c
3180
ioc->io_uring_poll_queues[qid].reply_q = reply_q;
drivers/scsi/mpt3sas/mpt3sas_base.c
3185
if (ioc->msix_enable)
drivers/scsi/mpt3sas/mpt3sas_base.c
3187
ioc->driver_name, ioc->id, index);
drivers/scsi/mpt3sas/mpt3sas_base.c
319
(cmd_credit * ioc->request_sz) +
drivers/scsi/mpt3sas/mpt3sas_base.c
3190
ioc->driver_name, ioc->id);
drivers/scsi/mpt3sas/mpt3sas_base.c
3201
list_add_tail(&reply_q->list, &ioc->reply_queue_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
321
chain_virt = base_chain + (smid * ioc->facts.MaxChainDepth *
drivers/scsi/mpt3sas/mpt3sas_base.c
3212
_base_assign_reply_queues(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3216
int iopoll_q_count = ioc->reply_queue_count -
drivers/scsi/mpt3sas/mpt3sas_base.c
3217
ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
322
ioc->request_sz) + (sge_chain_count * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
3220
if (!_base_is_controller_msix_enabled(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
3223
if (ioc->msix_load_balance)
drivers/scsi/mpt3sas/mpt3sas_base.c
3226
memset(ioc->cpu_msix_table, 0, ioc->cpu_msix_table_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
3229
nr_msix = ioc->reply_queue_count = min(ioc->reply_queue_count,
drivers/scsi/mpt3sas/mpt3sas_base.c
3230
ioc->facts.MaxMSIxVectors);
drivers/scsi/mpt3sas/mpt3sas_base.c
3234
if (ioc->smp_affinity_enable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3240
if (ioc->high_iops_queues) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3241
mask = cpumask_of_node(dev_to_node(&ioc->pdev->dev));
drivers/scsi/mpt3sas/mpt3sas_base.c
3242
for (index = 0; index < ioc->high_iops_queues;
drivers/scsi/mpt3sas/mpt3sas_base.c
3244
irq = pci_irq_vector(ioc->pdev, index);
drivers/scsi/mpt3sas/mpt3sas_base.c
3249
list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3252
if (reply_q->msix_index < ioc->high_iops_queues ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3253
reply_q->msix_index >= ioc->iopoll_q_start_index)
drivers/scsi/mpt3sas/mpt3sas_base.c
3256
mask = pci_irq_get_affinity(ioc->pdev,
drivers/scsi/mpt3sas/mpt3sas_base.c
3259
ioc_warn(ioc, "no affinity for msi %x\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3265
if (cpu >= ioc->cpu_msix_table_sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
3267
ioc->cpu_msix_table[cpu] = reply_q->msix_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
3275
nr_msix -= (ioc->high_iops_queues - iopoll_q_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3278
list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3281
if (reply_q->msix_index < ioc->high_iops_queues ||
drivers/scsi/mpt3sas/mpt3sas_base.c
3282
reply_q->msix_index >= ioc->iopoll_q_start_index)
drivers/scsi/mpt3sas/mpt3sas_base.c
3292
ioc->cpu_msix_table[cpu] = reply_q->msix_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
3314
_base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3324
ioc->io_uring_poll_queues) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3325
ioc->high_iops_queues = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3331
pcie_capability_read_word(ioc->pdev, PCI_EXP_LNKSTA, &lnksta);
drivers/scsi/mpt3sas/mpt3sas_base.c
3335
ioc->high_iops_queues = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3340
if (!reset_devices && ioc->is_aero_ioc &&
drivers/scsi/mpt3sas/mpt3sas_base.c
3344
ioc->high_iops_queues = MPT3SAS_HIGH_IOPS_REPLY_QUEUES;
drivers/scsi/mpt3sas/mpt3sas_base.c
3346
ioc->high_iops_queues = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3355
mpt3sas_base_disable_msix(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3357
if (!ioc->msix_enable)
drivers/scsi/mpt3sas/mpt3sas_base.c
3359
pci_free_irq_vectors(ioc->pdev);
drivers/scsi/mpt3sas/mpt3sas_base.c
3360
ioc->msix_enable = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3361
kfree(ioc->io_uring_poll_queues);
drivers/scsi/mpt3sas/mpt3sas_base.c
3370
_base_alloc_irq_vectors(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3373
struct irq_affinity desc = { .pre_vectors = ioc->high_iops_queues };
drivers/scsi/mpt3sas/mpt3sas_base.c
3379
int nr_msix_vectors = ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
338
_base_get_chain_phys(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
3382
if (ioc->smp_affinity_enable)
drivers/scsi/mpt3sas/mpt3sas_base.c
3387
ioc_info(ioc, " %d %d %d\n", ioc->high_iops_queues,
drivers/scsi/mpt3sas/mpt3sas_base.c
3388
ioc->reply_queue_count, nr_msix_vectors);
drivers/scsi/mpt3sas/mpt3sas_base.c
3390
i = pci_alloc_irq_vectors_affinity(ioc->pdev,
drivers/scsi/mpt3sas/mpt3sas_base.c
3391
ioc->high_iops_queues,
drivers/scsi/mpt3sas/mpt3sas_base.c
3403
_base_enable_msix(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3410
ioc->msix_load_balance = false;
drivers/scsi/mpt3sas/mpt3sas_base.c
3418
if (_base_check_enable_msix(ioc) != 0)
drivers/scsi/mpt3sas/mpt3sas_base.c
342
u16 cmd_credit = ioc->facts.RequestCredit + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3421
ioc_info(ioc, "MSI-X vectors supported: %d\n", ioc->msix_vector_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3423
ioc->cpu_count, max_msix_vectors);
drivers/scsi/mpt3sas/mpt3sas_base.c
3425
ioc->reply_queue_count =
drivers/scsi/mpt3sas/mpt3sas_base.c
3426
min_t(int, ioc->cpu_count, ioc->msix_vector_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3428
if (!ioc->rdpq_array_enable && max_msix_vectors == -1)
drivers/scsi/mpt3sas/mpt3sas_base.c
344
base_chain_phys = ioc->chip_phys + MPI_FRAME_START_OFFSET +
drivers/scsi/mpt3sas/mpt3sas_base.c
3440
if (!ioc->combined_reply_queue &&
drivers/scsi/mpt3sas/mpt3sas_base.c
3441
ioc->hba_mpi_version_belonged != MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3442
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3444
ioc->msix_load_balance = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
345
(cmd_credit * ioc->request_sz) +
drivers/scsi/mpt3sas/mpt3sas_base.c
3451
if (ioc->msix_load_balance)
drivers/scsi/mpt3sas/mpt3sas_base.c
3452
ioc->smp_affinity_enable = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3454
if (!ioc->smp_affinity_enable || ioc->reply_queue_count <= 1)
drivers/scsi/mpt3sas/mpt3sas_base.c
3455
ioc->shost->host_tagset = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3460
if (ioc->shost->host_tagset)
drivers/scsi/mpt3sas/mpt3sas_base.c
3464
ioc->io_uring_poll_queues = kzalloc_objs(struct io_uring_poll_queue,
drivers/scsi/mpt3sas/mpt3sas_base.c
3466
if (!ioc->io_uring_poll_queues)
drivers/scsi/mpt3sas/mpt3sas_base.c
347
chain_phys = base_chain_phys + (smid * ioc->facts.MaxChainDepth *
drivers/scsi/mpt3sas/mpt3sas_base.c
3470
if (ioc->is_aero_ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3471
_base_check_and_enable_high_iops_queues(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3472
ioc->msix_vector_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3478
ioc->reply_queue_count = min_t(int,
drivers/scsi/mpt3sas/mpt3sas_base.c
3479
ioc->reply_queue_count + ioc->high_iops_queues,
drivers/scsi/mpt3sas/mpt3sas_base.c
348
ioc->request_sz) + (sge_chain_count * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
3480
ioc->msix_vector_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3487
ioc->reply_queue_count = min_t(int, local_max_msix_vectors,
drivers/scsi/mpt3sas/mpt3sas_base.c
3488
ioc->reply_queue_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3494
if (ioc->reply_queue_count < (iopoll_q_count + MPT3_MIN_IRQS))
drivers/scsi/mpt3sas/mpt3sas_base.c
3496
ioc->reply_queue_count = min_t(int,
drivers/scsi/mpt3sas/mpt3sas_base.c
3497
ioc->reply_queue_count + iopoll_q_count,
drivers/scsi/mpt3sas/mpt3sas_base.c
3498
ioc->msix_vector_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3504
ioc->iopoll_q_start_index =
drivers/scsi/mpt3sas/mpt3sas_base.c
3505
ioc->reply_queue_count - iopoll_q_count;
drivers/scsi/mpt3sas/mpt3sas_base.c
3507
r = _base_alloc_irq_vectors(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3509
ioc_info(ioc, "pci_alloc_irq_vectors failed (r=%d) !!!\n", r);
drivers/scsi/mpt3sas/mpt3sas_base.c
3518
if (r < ioc->iopoll_q_start_index) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3519
ioc->reply_queue_count = r + iopoll_q_count;
drivers/scsi/mpt3sas/mpt3sas_base.c
3520
ioc->iopoll_q_start_index =
drivers/scsi/mpt3sas/mpt3sas_base.c
3521
ioc->reply_queue_count - iopoll_q_count;
drivers/scsi/mpt3sas/mpt3sas_base.c
3524
ioc->msix_enable = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3525
for (i = 0; i < ioc->reply_queue_count; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3526
r = _base_request_irq(ioc, i);
drivers/scsi/mpt3sas/mpt3sas_base.c
3528
mpt3sas_base_free_irq(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3529
mpt3sas_base_disable_msix(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3534
ioc_info(ioc, "High IOPs queues : %s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3535
ioc->high_iops_queues ? "enabled" : "disabled");
drivers/scsi/mpt3sas/mpt3sas_base.c
3541
ioc->high_iops_queues = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3542
ioc_info(ioc, "High IOPs queues : disabled\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
3543
ioc->reply_queue_count = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3544
ioc->iopoll_q_start_index = ioc->reply_queue_count - 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3545
r = pci_alloc_irq_vectors(ioc->pdev, 1, 1, PCI_IRQ_INTX);
drivers/scsi/mpt3sas/mpt3sas_base.c
3547
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3548
ioc_info(ioc, "pci_alloc_irq_vector(legacy) failed (r=%d) !!!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3551
r = _base_request_irq(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
3561
mpt3sas_base_unmap_resources(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3563
struct pci_dev *pdev = ioc->pdev;
drivers/scsi/mpt3sas/mpt3sas_base.c
3565
dexitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
3567
mpt3sas_base_free_irq(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3568
mpt3sas_base_disable_msix(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3570
kfree(ioc->replyPostRegisterIndex);
drivers/scsi/mpt3sas/mpt3sas_base.c
3571
ioc->replyPostRegisterIndex = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
3574
if (ioc->chip_phys) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3575
iounmap(ioc->chip);
drivers/scsi/mpt3sas/mpt3sas_base.c
3576
ioc->chip_phys = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3580
pci_release_selected_regions(ioc->pdev, ioc->bars);
drivers/scsi/mpt3sas/mpt3sas_base.c
3586
_base_diag_reset(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3596
mpt3sas_base_check_for_fault_and_issue_reset(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3601
dinitprintk(ioc, pr_info("%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
3602
if (ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_base.c
3604
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
3605
dhsprintk(ioc, pr_info("%s: ioc_state(0x%08x)\n", __func__, ioc_state));
drivers/scsi/mpt3sas/mpt3sas_base.c
3608
mpt3sas_print_fault_code(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_base.c
3610
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3611
rc = _base_diag_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3614
mpt3sas_print_coredump_info(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_base.c
3616
mpt3sas_base_wait_for_coredump_completion(ioc, __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
3617
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3618
rc = _base_diag_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3631
mpt3sas_base_map_resources(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
3633
struct pci_dev *pdev = ioc->pdev;
drivers/scsi/mpt3sas/mpt3sas_base.c
364
_base_get_buffer_bar0(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3642
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
3644
ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM);
drivers/scsi/mpt3sas/mpt3sas_base.c
3646
ioc_warn(ioc, "pci_enable_device_mem: failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
3647
ioc->bars = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3652
if (pci_request_selected_regions(pdev, ioc->bars,
drivers/scsi/mpt3sas/mpt3sas_base.c
3653
ioc->driver_name)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3654
ioc_warn(ioc, "pci_request_selected_regions: failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
3655
ioc->bars = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
366
u16 cmd_credit = ioc->facts.RequestCredit + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3663
if (_base_config_dma_addressing(ioc, pdev) != 0) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3664
ioc_warn(ioc, "no suitable DMA mask for %s\n", pci_name(pdev));
drivers/scsi/mpt3sas/mpt3sas_base.c
3679
ioc->chip_phys = pci_resource_start(pdev, i);
drivers/scsi/mpt3sas/mpt3sas_base.c
368
void __iomem *chain_end = _base_get_chain(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3680
chip_phys = ioc->chip_phys;
drivers/scsi/mpt3sas/mpt3sas_base.c
3682
ioc->chip = ioremap(ioc->chip_phys, memap_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
3686
if (ioc->chip == NULL) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3687
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3693
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3695
r = _base_get_ioc_facts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3697
rc = mpt3sas_base_check_for_fault_and_issue_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3698
if (rc || (_base_get_ioc_facts(ioc)))
drivers/scsi/mpt3sas/mpt3sas_base.c
370
ioc->facts.MaxChainDepth);
drivers/scsi/mpt3sas/mpt3sas_base.c
3702
if (!ioc->rdpq_array_enable_assigned) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3703
ioc->rdpq_array_enable = ioc->rdpq_array_capable;
drivers/scsi/mpt3sas/mpt3sas_base.c
3704
ioc->rdpq_array_enable_assigned = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3707
r = _base_enable_msix(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3711
iopoll_q_count = ioc->reply_queue_count - ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
3713
atomic_set(&ioc->io_uring_poll_queues[i].busy, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
3714
atomic_set(&ioc->io_uring_poll_queues[i].pause, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
3717
if (!ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_base.c
3718
_base_init_irqpolls(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3722
if (ioc->combined_reply_queue) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3729
ioc->replyPostRegisterIndex = kzalloc_objs(resource_size_t *,
drivers/scsi/mpt3sas/mpt3sas_base.c
3730
ioc->combined_reply_index_count);
drivers/scsi/mpt3sas/mpt3sas_base.c
3731
if (!ioc->replyPostRegisterIndex) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3732
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3738
for (i = 0; i < ioc->combined_reply_index_count; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3739
ioc->replyPostRegisterIndex[i] =
drivers/scsi/mpt3sas/mpt3sas_base.c
3741
((u8 __force *)&ioc->chip->Doorbell +
drivers/scsi/mpt3sas/mpt3sas_base.c
3747
if (ioc->is_warpdrive) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3748
ioc->reply_post_host_index[0] = (resource_size_t __iomem *)
drivers/scsi/mpt3sas/mpt3sas_base.c
3749
&ioc->chip->ReplyPostHostIndex;
drivers/scsi/mpt3sas/mpt3sas_base.c
3751
for (i = 1; i < ioc->cpu_msix_table_sz; i++)
drivers/scsi/mpt3sas/mpt3sas_base.c
3752
ioc->reply_post_host_index[i] =
drivers/scsi/mpt3sas/mpt3sas_base.c
3754
((u8 __iomem *)&ioc->chip->Doorbell + (0x4000 + ((i - 1)
drivers/scsi/mpt3sas/mpt3sas_base.c
3758
list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3759
if (reply_q->msix_index >= ioc->iopoll_q_start_index) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3767
ioc->msix_enable ? "PCI-MSI-X" : "IO-APIC",
drivers/scsi/mpt3sas/mpt3sas_base.c
3768
pci_irq_vector(ioc->pdev, reply_q->msix_index));
drivers/scsi/mpt3sas/mpt3sas_base.c
3771
ioc_info(ioc, "iomem(%pap), mapped(0x%p), size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3772
&chip_phys, ioc->chip, memap_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
3773
ioc_info(ioc, "ioport(0x%016llx), size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
3781
mpt3sas_base_unmap_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
3793
mpt3sas_base_get_msg_frame(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3795
return (void *)(ioc->request + (smid * ioc->request_sz));
drivers/scsi/mpt3sas/mpt3sas_base.c
3806
mpt3sas_base_get_sense_buffer(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3808
return (void *)(ioc->sense + ((smid - 1) * SCSI_SENSE_BUFFERSIZE));
drivers/scsi/mpt3sas/mpt3sas_base.c
3819
mpt3sas_base_get_sense_buffer_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3821
return cpu_to_le32(ioc->sense_dma + ((smid - 1) *
drivers/scsi/mpt3sas/mpt3sas_base.c
3833
mpt3sas_base_get_pcie_sgl(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3835
return (void *)(ioc->pcie_sg_lookup[smid - 1].pcie_sgl);
drivers/scsi/mpt3sas/mpt3sas_base.c
3846
mpt3sas_base_get_pcie_sgl_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3848
return ioc->pcie_sg_lookup[smid - 1].pcie_sgl_dma;
drivers/scsi/mpt3sas/mpt3sas_base.c
385
_base_get_buffer_phys_bar0(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
3859
mpt3sas_base_get_reply_virt_addr(struct MPT3SAS_ADAPTER *ioc, u32 phys_addr)
drivers/scsi/mpt3sas/mpt3sas_base.c
3863
return ioc->reply + (phys_addr - (u32)ioc->reply_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
387
u16 cmd_credit = ioc->facts.RequestCredit + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
3876
_base_get_msix_index(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
388
phys_addr_t chain_end_phys = _base_get_chain_phys(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3880
if (ioc->msix_load_balance)
drivers/scsi/mpt3sas/mpt3sas_base.c
3881
return ioc->reply_queue_count ?
drivers/scsi/mpt3sas/mpt3sas_base.c
3883
&ioc->total_io_cnt), ioc->reply_queue_count) : 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
3885
if (scmd && ioc->shost->nr_hw_queues > 1) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3889
ioc->high_iops_queues;
drivers/scsi/mpt3sas/mpt3sas_base.c
3892
return ioc->cpu_msix_table[raw_smp_processor_id()];
drivers/scsi/mpt3sas/mpt3sas_base.c
390
ioc->facts.MaxChainDepth);
drivers/scsi/mpt3sas/mpt3sas_base.c
3906
_base_get_high_iops_msix_index(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
3917
atomic64_add_return(1, &ioc->high_iops_outstanding) /
drivers/scsi/mpt3sas/mpt3sas_base.c
3921
return _base_get_msix_index(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_base.c
3932
mpt3sas_base_get_smid(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx)
drivers/scsi/mpt3sas/mpt3sas_base.c
3938
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
3939
if (list_empty(&ioc->internal_free_list)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
3940
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
3941
ioc_err(ioc, "%s: smid not available\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
3945
request = list_entry(ioc->internal_free_list.next,
drivers/scsi/mpt3sas/mpt3sas_base.c
3950
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
3963
mpt3sas_base_get_smid_scsiio(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx,
drivers/scsi/mpt3sas/mpt3sas_base.c
3983
ioc->io_queue_num[tag] = blk_mq_unique_tag_to_hwq(unique_tag);
drivers/scsi/mpt3sas/mpt3sas_base.c
4001
mpt3sas_base_get_smid_hpr(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx)
drivers/scsi/mpt3sas/mpt3sas_base.c
4007
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
4008
if (list_empty(&ioc->hpr_free_list)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4009
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
4013
request = list_entry(ioc->hpr_free_list.next,
drivers/scsi/mpt3sas/mpt3sas_base.c
4018
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
4023
_base_recovery_check(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
4028
if (ioc->shost_recovery && ioc->pending_io_count) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4029
ioc->pending_io_count = scsi_host_busy(ioc->shost);
drivers/scsi/mpt3sas/mpt3sas_base.c
4030
if (ioc->pending_io_count == 0)
drivers/scsi/mpt3sas/mpt3sas_base.c
4031
wake_up(&ioc->reset_wq);
drivers/scsi/mpt3sas/mpt3sas_base.c
4035
void mpt3sas_base_clear_st(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4043
atomic_set(&ioc->chain_lookup[st->smid - 1].chain_offset, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
4053
mpt3sas_base_free_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
4058
if (smid < ioc->hi_priority_smid) {
drivers/scsi/mpt3sas/mpt3sas_base.c
406
_base_get_chain_buffer_dma_to_chain_buffer(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4062
st = _get_st_from_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4064
_base_recovery_check(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
4069
request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4070
memset(request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4072
mpt3sas_base_clear_st(ioc, st);
drivers/scsi/mpt3sas/mpt3sas_base.c
4073
_base_recovery_check(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
4074
ioc->io_queue_num[smid - 1] = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
4078
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
4079
if (smid < ioc->internal_smid) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4081
i = smid - ioc->hi_priority_smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
4082
ioc->hpr_lookup[i].cb_idx = 0xFF;
drivers/scsi/mpt3sas/mpt3sas_base.c
4083
list_add(&ioc->hpr_lookup[i].tracker_list, &ioc->hpr_free_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
4084
} else if (smid <= ioc->hba_queue_depth) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4086
i = smid - ioc->internal_smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
4087
ioc->internal_lookup[i].cb_idx = 0xFF;
drivers/scsi/mpt3sas/mpt3sas_base.c
4088
list_add(&ioc->internal_lookup[i].tracker_list,
drivers/scsi/mpt3sas/mpt3sas_base.c
4089
&ioc->internal_free_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
4091
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
412
for (index = 0; index < ioc->scsiio_depth; index++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
413
for (j = 0; j < ioc->chains_needed_per_io; j++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
414
ct = &ioc->chain_lookup[index].chains_per_smid[j];
drivers/scsi/mpt3sas/mpt3sas_base.c
4151
_base_set_and_get_msix_index(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
4155
if (smid < ioc->hi_priority_smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
4156
st = _get_st_from_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4159
return _base_get_msix_index(ioc, NULL);
drivers/scsi/mpt3sas/mpt3sas_base.c
4161
st->msix_io = ioc->get_msix_index_for_smlio(ioc, st->scmd);
drivers/scsi/mpt3sas/mpt3sas_base.c
4172
_base_put_smid_mpi_ep_scsi_io(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4178
__le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4180
_clone_sg_entries(ioc, (void *) mfp, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4181
mpi_req_iomem = (void __force *)ioc->chip +
drivers/scsi/mpt3sas/mpt3sas_base.c
4182
MPI_FRAME_START_OFFSET + (smid * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4184
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4186
descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
419
ioc_info(ioc, "Provided chain_buffer_dma address is not in the lookup list\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
4190
_base_mpi_ep_writeq(*request, &ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4191
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4201
_base_put_smid_scsi_io(struct MPT3SAS_ADAPTER *ioc, u16 smid, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_base.c
4208
descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4212
_base_writeq(*request, &ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4213
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4223
_base_put_smid_fast_path(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
4231
descriptor.SCSIIO.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4235
_base_writeq(*request, &ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4236
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4246
_base_put_smid_hi_priority(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
4253
if (ioc->is_mcpu_endpoint) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4254
__le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4257
mpi_req_iomem = (void __force *)ioc->chip
drivers/scsi/mpt3sas/mpt3sas_base.c
4259
+ (smid * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4261
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4272
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
4274
&ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4275
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4277
_base_writeq(*request, &ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4278
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4288
mpt3sas_base_put_smid_nvme_encap(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
4295
descriptor.Default.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4299
_base_writeq(*request, &ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4300
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4309
_base_put_smid_default(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
4315
if (ioc->is_mcpu_endpoint) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4316
__le32 *mfp = (__le32 *)mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4318
_clone_sg_entries(ioc, (void *) mfp, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4320
mpi_req_iomem = (void __force *)ioc->chip +
drivers/scsi/mpt3sas/mpt3sas_base.c
4321
MPI_FRAME_START_OFFSET + (smid * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4323
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
4327
descriptor.Default.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
433
static void _clone_sg_entries(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4331
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
4333
&ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4334
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4336
_base_writeq(*request, &ioc->chip->RequestDescriptorPostLow,
drivers/scsi/mpt3sas/mpt3sas_base.c
4337
&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_base.c
4350
_base_put_smid_scsi_io_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
4357
descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4360
writel(cpu_to_le32(*request), &ioc->chip->AtomicRequestDescriptorPost);
drivers/scsi/mpt3sas/mpt3sas_base.c
4372
_base_put_smid_fast_path_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
4379
descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4382
writel(cpu_to_le32(*request), &ioc->chip->AtomicRequestDescriptorPost);
drivers/scsi/mpt3sas/mpt3sas_base.c
4395
_base_put_smid_hi_priority_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.c
4405
writel(cpu_to_le32(*request), &ioc->chip->AtomicRequestDescriptorPost);
drivers/scsi/mpt3sas/mpt3sas_base.c
4417
_base_put_smid_default_atomic(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_base.c
4423
descriptor.MSIxIndex = _base_set_and_get_msix_index(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4426
writel(cpu_to_le32(*request), &ioc->chip->AtomicRequestDescriptorPost);
drivers/scsi/mpt3sas/mpt3sas_base.c
4434
_base_display_OEMs_branding(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
4436
if (ioc->pdev->subsystem_vendor != PCI_VENDOR_ID_INTEL)
drivers/scsi/mpt3sas/mpt3sas_base.c
4439
switch (ioc->pdev->subsystem_vendor) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4441
switch (ioc->pdev->device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4443
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4445
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4449
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4453
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4457
ioc_info(ioc, "Intel(R) Controller: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4458
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4463
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4465
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4469
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4473
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4477
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4481
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4485
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4489
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4493
ioc_info(ioc, "Intel(R) Controller: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4494
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4499
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4501
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4506
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4510
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4514
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4518
ioc_info(ioc, "Intel(R) Controller: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4519
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4524
ioc_info(ioc, "Intel(R) Controller: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4525
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4530
switch (ioc->pdev->device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4532
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4534
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4538
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4542
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4546
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4550
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4554
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4558
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4562
ioc_info(ioc, "Dell 6Gbps HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4563
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4568
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4570
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4574
ioc_info(ioc, "Dell 12Gbps HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4575
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4580
ioc_info(ioc, "Dell HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4581
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4586
switch (ioc->pdev->device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4588
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4590
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4594
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4598
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4602
ioc_info(ioc, "Cisco 12Gbps SAS HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4603
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4608
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4610
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4614
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4618
ioc_info(ioc, "Cisco 12Gbps SAS HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4619
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4624
ioc_info(ioc, "Cisco SAS HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4625
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4630
switch (ioc->pdev->device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4632
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4634
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4638
ioc_info(ioc, "HP 6Gbps SAS HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4639
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4644
switch (ioc->pdev->subsystem_device) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4646
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4650
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4654
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4658
ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4662
ioc_info(ioc, "HP 6Gbps SAS HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4663
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4668
ioc_info(ioc, "HP SAS HBA: Subsystem ID: 0x%X\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4669
ioc->pdev->subsystem_device);
drivers/scsi/mpt3sas/mpt3sas_base.c
4686
_base_display_fwpkg_version(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
4699
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
4701
if (ioc->base_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4702
ioc_err(ioc, "%s: internal command already in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
4707
fwpkg_data = dma_alloc_coherent(&ioc->pdev->dev, data_length,
drivers/scsi/mpt3sas/mpt3sas_base.c
4710
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4716
smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
4718
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
4723
ioc->base_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
4724
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4725
ioc->base_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
473
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4730
ioc->build_sg(ioc, &mpi_request->SGL, 0, 0, fwpkg_data_dma,
drivers/scsi/mpt3sas/mpt3sas_base.c
4732
init_completion(&ioc->base_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
4733
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4735
wait_for_completion_timeout(&ioc->base_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_base.c
4737
ioc_info(ioc, "%s: complete\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
4738
if (!(ioc->base_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4739
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
4745
if (ioc->base_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4746
memcpy(&mpi_reply, ioc->base_cmds.reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
475
ioc_err(ioc, "scmd is NULL\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
4765
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4777
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
4780
dma_free_coherent(&ioc->pdev->dev, data_length, fwpkg_data,
drivers/scsi/mpt3sas/mpt3sas_base.c
4783
if (ioc->drv_internal_flags & MPT_DRV_INTERNAL_FIRST_PE_ISSUED)
drivers/scsi/mpt3sas/mpt3sas_base.c
4785
if (mpt3sas_base_check_for_fault_and_issue_reset(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
4797
_base_display_ioc_capabilities(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
4803
memtostr(desc, ioc->manu_pg0.ChipName);
drivers/scsi/mpt3sas/mpt3sas_base.c
4804
ioc_info(ioc, "%s: FWVersion(%02d.%02d.%02d.%02d), ChipRevision(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4806
(ioc->facts.FWVersion.Word & 0xFF000000) >> 24,
drivers/scsi/mpt3sas/mpt3sas_base.c
4807
(ioc->facts.FWVersion.Word & 0x00FF0000) >> 16,
drivers/scsi/mpt3sas/mpt3sas_base.c
4808
(ioc->facts.FWVersion.Word & 0x0000FF00) >> 8,
drivers/scsi/mpt3sas/mpt3sas_base.c
4809
ioc->facts.FWVersion.Word & 0x000000FF,
drivers/scsi/mpt3sas/mpt3sas_base.c
4810
ioc->pdev->revision);
drivers/scsi/mpt3sas/mpt3sas_base.c
4812
_base_display_OEMs_branding(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
4814
if (ioc->facts.ProtocolFlags & MPI2_IOCFACTS_PROTOCOL_NVME_DEVICES) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4819
ioc_info(ioc, "Protocol=(");
drivers/scsi/mpt3sas/mpt3sas_base.c
4821
if (ioc->facts.ProtocolFlags & MPI2_IOCFACTS_PROTOCOL_SCSI_INITIATOR) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4826
if (ioc->facts.ProtocolFlags & MPI2_IOCFACTS_PROTOCOL_SCSI_TARGET) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4834
if (!ioc->hide_ir_msg) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4835
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4842
if (ioc->facts.IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TLR) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4847
if (ioc->facts.IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_MULTICAST) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4852
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4858
if (ioc->facts.IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_EEDP) {
drivers/scsi/mpt3sas/mpt3sas_base.c
4863
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4869
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4875
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4881
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4887
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
4893
iounit_pg1_flags = le32_to_cpu(ioc->iounit_pg1.Flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
4913
mpt3sas_base_update_missing_delay(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
4924
mpt3sas_config_get_number_hba_phys(ioc, &num_phys);
drivers/scsi/mpt3sas/mpt3sas_base.c
4931
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4935
if ((mpt3sas_config_get_sas_iounit_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
4937
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4944
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4969
if (!mpt3sas_config_set_sas_iounit_pg1(ioc, &mpi_reply, sas_iounit_pg1,
drivers/scsi/mpt3sas/mpt3sas_base.c
4977
ioc_info(ioc, "device_missing_delay: old(%d), new(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
4979
ioc_info(ioc, "ioc_missing_delay: old(%d), new(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
498
buffer_iomem = _base_get_buffer_bar0(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4982
ioc->device_missing_delay = dmd_new;
drivers/scsi/mpt3sas/mpt3sas_base.c
4983
ioc->io_missing_delay = io_missing_delay;
drivers/scsi/mpt3sas/mpt3sas_base.c
499
buffer_iomem_phys = _base_get_buffer_phys_bar0(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
4999
_base_update_ioc_page1_inlinewith_perf_mode(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5005
rc = mpt3sas_config_get_ioc_pg1(ioc, &mpi_reply, &ioc->ioc_pg1_copy);
drivers/scsi/mpt3sas/mpt3sas_base.c
5008
memcpy(&ioc_pg1, &ioc->ioc_pg1_copy, sizeof(Mpi2IOCPage1_t));
drivers/scsi/mpt3sas/mpt3sas_base.c
5013
if (ioc->high_iops_queues) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5014
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5029
rc = mpt3sas_config_set_ioc_pg1(ioc, &mpi_reply, &ioc_pg1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5032
ioc_info(ioc, "performance mode: balanced\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5044
rc = mpt3sas_config_set_ioc_pg1(ioc, &mpi_reply, &ioc_pg1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5047
ioc_info(ioc, "performance mode: latency\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5053
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5058
rc = mpt3sas_config_set_ioc_pg1(ioc, &mpi_reply, &ioc_pg1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5074
_base_get_event_diag_triggers(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5084
r = mpt3sas_config_get_driver_trigger_pg2(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
509
for (i = 0; i < MPT_MIN_PHYS_SEGMENTS + ioc->facts.MaxChainDepth; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5092
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5093
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5102
ioc->diag_trigger_event.ValidEntries = count;
drivers/scsi/mpt3sas/mpt3sas_base.c
5104
event_tg = &ioc->diag_trigger_event.EventTriggerEntry[0];
drivers/scsi/mpt3sas/mpt3sas_base.c
5126
_base_get_scsi_diag_triggers(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5136
r = mpt3sas_config_get_driver_trigger_pg3(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5144
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5145
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5154
ioc->diag_trigger_scsi.ValidEntries = count;
drivers/scsi/mpt3sas/mpt3sas_base.c
5156
scsi_tg = &ioc->diag_trigger_scsi.SCSITriggerEntry[0];
drivers/scsi/mpt3sas/mpt3sas_base.c
5178
_base_get_mpi_diag_triggers(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5188
r = mpt3sas_config_get_driver_trigger_pg4(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5196
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5197
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5206
ioc->diag_trigger_mpi.ValidEntries = count;
drivers/scsi/mpt3sas/mpt3sas_base.c
5208
status_tg = &ioc->diag_trigger_mpi.MPITriggerEntry[0];
drivers/scsi/mpt3sas/mpt3sas_base.c
522
_base_get_chain_buffer_dma_to_chain_buffer(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5232
_base_get_master_diag_triggers(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5239
r = mpt3sas_config_get_driver_trigger_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5247
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5248
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5255
ioc->diag_trigger_master.MasterData |=
drivers/scsi/mpt3sas/mpt3sas_base.c
5274
_base_check_for_trigger_pages_support(struct MPT3SAS_ADAPTER *ioc, u32 *trigger_flags)
drivers/scsi/mpt3sas/mpt3sas_base.c
5281
r = mpt3sas_config_get_driver_trigger_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5304
_base_get_diag_triggers(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
531
_base_get_chain(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5312
ioc->diag_trigger_master.MasterData =
drivers/scsi/mpt3sas/mpt3sas_base.c
5315
r = _base_check_for_trigger_pages_support(ioc, &trigger_flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
5326
ioc->supports_trigger_pages = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
5334
r = _base_get_master_diag_triggers(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5345
r = _base_get_event_diag_triggers(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
535
dst_addr_phys = _base_get_chain_phys(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5356
r = _base_get_scsi_diag_triggers(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5366
r = _base_get_mpi_diag_triggers(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5382
_base_update_diag_trigger_pages(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5385
if (ioc->diag_trigger_master.MasterData)
drivers/scsi/mpt3sas/mpt3sas_base.c
5386
mpt3sas_config_update_driver_trigger_pg1(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5387
&ioc->diag_trigger_master, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5389
if (ioc->diag_trigger_event.ValidEntries)
drivers/scsi/mpt3sas/mpt3sas_base.c
5390
mpt3sas_config_update_driver_trigger_pg2(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5391
&ioc->diag_trigger_event, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5393
if (ioc->diag_trigger_scsi.ValidEntries)
drivers/scsi/mpt3sas/mpt3sas_base.c
5394
mpt3sas_config_update_driver_trigger_pg3(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5395
&ioc->diag_trigger_scsi, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5397
if (ioc->diag_trigger_mpi.ValidEntries)
drivers/scsi/mpt3sas/mpt3sas_base.c
5398
mpt3sas_config_update_driver_trigger_pg4(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5399
&ioc->diag_trigger_mpi, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5410
static int _base_assign_fw_reported_qd(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5418
ioc->max_wideport_qd = MPT3SAS_SAS_QUEUE_DEPTH;
drivers/scsi/mpt3sas/mpt3sas_base.c
5419
ioc->max_narrowport_qd = MPT3SAS_SAS_QUEUE_DEPTH;
drivers/scsi/mpt3sas/mpt3sas_base.c
5420
ioc->max_sata_qd = MPT3SAS_SATA_QUEUE_DEPTH;
drivers/scsi/mpt3sas/mpt3sas_base.c
5421
ioc->max_nvme_qd = MPT3SAS_NVME_QUEUE_DEPTH;
drivers/scsi/mpt3sas/mpt3sas_base.c
5422
if (!ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5425
rc = mpt3sas_config_get_sas_iounit_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5429
ioc->name, __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
5434
ioc->max_wideport_qd = (depth ? depth : MPT3SAS_SAS_QUEUE_DEPTH);
drivers/scsi/mpt3sas/mpt3sas_base.c
5437
ioc->max_narrowport_qd = (depth ? depth : MPT3SAS_SAS_QUEUE_DEPTH);
drivers/scsi/mpt3sas/mpt3sas_base.c
5440
ioc->max_sata_qd = (depth ? depth : MPT3SAS_SATA_QUEUE_DEPTH);
drivers/scsi/mpt3sas/mpt3sas_base.c
5443
rc = mpt3sas_config_get_pcie_iounit_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5447
ioc->name, __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
5450
ioc->max_nvme_qd = (le16_to_cpu(pcie_iounit_pg1.NVMeMaxQueueDepth)) ?
drivers/scsi/mpt3sas/mpt3sas_base.c
5454
dinitprintk(ioc, pr_err(
drivers/scsi/mpt3sas/mpt3sas_base.c
5456
ioc->max_wideport_qd, ioc->max_narrowport_qd,
drivers/scsi/mpt3sas/mpt3sas_base.c
5457
ioc->max_sata_qd, ioc->max_nvme_qd));
drivers/scsi/mpt3sas/mpt3sas_base.c
5469
mpt3sas_atto_validate_nvram(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5487
ioc_err(ioc, "Invalid ATTO NVRAM checksum\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5497
ioc_err(ioc, "Invalid ATTO NVRAM signature\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5499
ioc_info(ioc, "Invalid ATTO NVRAM version");
drivers/scsi/mpt3sas/mpt3sas_base.c
5506
ioc_err(ioc, "Invalid ATTO SAS address\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5520
mpt3sas_atto_get_sas_addr(struct MPT3SAS_ADAPTER *ioc, union ATTO_SAS_ADDRESS *sas_addr)
drivers/scsi/mpt3sas/mpt3sas_base.c
5528
r = mpt3sas_config_get_manufacturing_pg1(ioc, &mpi_reply, &mfg_pg1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5530
ioc_err(ioc, "Failed to read manufacturing page 1\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5536
r = mpt3sas_atto_validate_nvram(ioc, nvram);
drivers/scsi/mpt3sas/mpt3sas_base.c
5553
mpt3sas_atto_init(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5564
r = mpt3sas_atto_get_sas_addr(ioc, &sas_addr);
drivers/scsi/mpt3sas/mpt3sas_base.c
5569
r = mpt3sas_config_get_bios_pg4(ioc, &mpi_reply, NULL, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
5571
ioc_err(ioc, "Failed to read ATTO bios page 4 header.\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5578
ioc_err(ioc, "Failed to allocate memory for ATTO bios page.\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
558
ioc->config_vaddr,
drivers/scsi/mpt3sas/mpt3sas_base.c
5583
r = mpt3sas_config_get_bios_pg4(ioc, &mpi_reply, bios_pg4, sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
5585
ioc_err(ioc, "Failed to read ATTO bios page 4\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5599
r = mpt3sas_config_set_bios_pg4(ioc, &mpi_reply, bios_pg4, sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
5611
_base_static_config_pages(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5618
ioc->nvme_abort_timeout = 30;
drivers/scsi/mpt3sas/mpt3sas_base.c
5620
rc = mpt3sas_config_get_manufacturing_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5621
&ioc->manu_pg0);
drivers/scsi/mpt3sas/mpt3sas_base.c
5624
if (ioc->ir_firmware) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5625
rc = mpt3sas_config_get_manufacturing_pg10(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5626
&ioc->manu_pg10);
drivers/scsi/mpt3sas/mpt3sas_base.c
5631
if (ioc->pdev->vendor == MPI2_MFGPAGE_VENDORID_ATTO) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5632
rc = mpt3sas_atto_init(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5641
rc = mpt3sas_config_get_manufacturing_pg11(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5642
&ioc->manu_pg11);
drivers/scsi/mpt3sas/mpt3sas_base.c
5645
if (!ioc->is_gen35_ioc && ioc->manu_pg11.EEDPTagMode == 0) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5647
ioc->name);
drivers/scsi/mpt3sas/mpt3sas_base.c
5648
ioc->manu_pg11.EEDPTagMode = 0x1;
drivers/scsi/mpt3sas/mpt3sas_base.c
5649
mpt3sas_config_set_manufacturing_pg11(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
5650
&ioc->manu_pg11);
drivers/scsi/mpt3sas/mpt3sas_base.c
5652
if (ioc->manu_pg11.AddlFlags2 & NVME_TASK_MNGT_CUSTOM_MASK)
drivers/scsi/mpt3sas/mpt3sas_base.c
5653
ioc->tm_custom_handling = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
5655
ioc->tm_custom_handling = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
5656
if (ioc->manu_pg11.NVMeAbortTO < NVME_TASK_ABORT_MIN_TIMEOUT)
drivers/scsi/mpt3sas/mpt3sas_base.c
5657
ioc->nvme_abort_timeout = NVME_TASK_ABORT_MIN_TIMEOUT;
drivers/scsi/mpt3sas/mpt3sas_base.c
5658
else if (ioc->manu_pg11.NVMeAbortTO >
drivers/scsi/mpt3sas/mpt3sas_base.c
5660
ioc->nvme_abort_timeout = NVME_TASK_ABORT_MAX_TIMEOUT;
drivers/scsi/mpt3sas/mpt3sas_base.c
5662
ioc->nvme_abort_timeout = ioc->manu_pg11.NVMeAbortTO;
drivers/scsi/mpt3sas/mpt3sas_base.c
5664
ioc->time_sync_interval =
drivers/scsi/mpt3sas/mpt3sas_base.c
5665
ioc->manu_pg11.TimeSyncInterval & MPT3SAS_TIMESYNC_MASK;
drivers/scsi/mpt3sas/mpt3sas_base.c
5666
if (ioc->time_sync_interval) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5667
if (ioc->manu_pg11.TimeSyncInterval & MPT3SAS_TIMESYNC_UNIT_MASK)
drivers/scsi/mpt3sas/mpt3sas_base.c
5668
ioc->time_sync_interval =
drivers/scsi/mpt3sas/mpt3sas_base.c
5669
ioc->time_sync_interval * SECONDS_PER_HOUR;
drivers/scsi/mpt3sas/mpt3sas_base.c
5671
ioc->time_sync_interval =
drivers/scsi/mpt3sas/mpt3sas_base.c
5672
ioc->time_sync_interval * SECONDS_PER_MIN;
drivers/scsi/mpt3sas/mpt3sas_base.c
5673
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5675
ioc->time_sync_interval, (ioc->manu_pg11.TimeSyncInterval &
drivers/scsi/mpt3sas/mpt3sas_base.c
5678
if (ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5679
ioc_warn(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5682
rc = _base_assign_fw_reported_qd(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5689
if (ioc->pdev->vendor == MPI2_MFGPAGE_VENDORID_ATTO)
drivers/scsi/mpt3sas/mpt3sas_base.c
5690
ioc->bios_pg3.BiosVersion = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
5692
rc = mpt3sas_config_get_bios_pg2(ioc, &mpi_reply, &ioc->bios_pg2);
drivers/scsi/mpt3sas/mpt3sas_base.c
5695
rc = mpt3sas_config_get_bios_pg3(ioc, &mpi_reply, &ioc->bios_pg3);
drivers/scsi/mpt3sas/mpt3sas_base.c
5700
rc = mpt3sas_config_get_ioc_pg8(ioc, &mpi_reply, &ioc->ioc_pg8);
drivers/scsi/mpt3sas/mpt3sas_base.c
5703
rc = mpt3sas_config_get_iounit_pg0(ioc, &mpi_reply, &ioc->iounit_pg0);
drivers/scsi/mpt3sas/mpt3sas_base.c
5706
rc = mpt3sas_config_get_iounit_pg1(ioc, &mpi_reply, &ioc->iounit_pg1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5709
rc = mpt3sas_config_get_iounit_pg8(ioc, &mpi_reply, &iounit_pg8);
drivers/scsi/mpt3sas/mpt3sas_base.c
5712
_base_display_ioc_capabilities(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5718
iounit_pg1_flags = le32_to_cpu(ioc->iounit_pg1.Flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
5719
if ((ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
5726
ioc->iounit_pg1.Flags = cpu_to_le32(iounit_pg1_flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
5727
rc = mpt3sas_config_set_iounit_pg1(ioc, &mpi_reply, &ioc->iounit_pg1);
drivers/scsi/mpt3sas/mpt3sas_base.c
5732
ioc->temp_sensors_count = iounit_pg8.NumSensors;
drivers/scsi/mpt3sas/mpt3sas_base.c
5733
if (ioc->is_aero_ioc) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5734
rc = _base_update_ioc_page1_inlinewith_perf_mode(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5738
if (ioc->is_gen35_ioc) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5739
if (ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5740
rc = _base_get_diag_triggers(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5755
_base_check_for_trigger_pages_support(ioc, &tg_flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
5756
if (!ioc->supports_trigger_pages && tg_flags != -EFAULT)
drivers/scsi/mpt3sas/mpt3sas_base.c
5757
_base_update_diag_trigger_pages(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
5758
else if (ioc->supports_trigger_pages &&
drivers/scsi/mpt3sas/mpt3sas_base.c
5760
ioc->supports_trigger_pages = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
5773
mpt3sas_free_enclosure_list(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5779
enclosure_dev_next, &ioc->enclosure_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5792
_base_release_memory_pools(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5798
int count = ioc->rdpq_array_enable ? ioc->reply_queue_count : 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
5800
dexitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
5802
if (ioc->request) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5803
dma_free_coherent(&ioc->pdev->dev, ioc->request_dma_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
5804
ioc->request, ioc->request_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5805
dexitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5806
ioc_info(ioc, "request_pool(0x%p): free\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
5807
ioc->request));
drivers/scsi/mpt3sas/mpt3sas_base.c
5808
ioc->request = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5811
if (ioc->sense) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5812
dma_pool_free(ioc->sense_dma_pool, ioc->sense, ioc->sense_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5813
dma_pool_destroy(ioc->sense_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5814
dexitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5815
ioc_info(ioc, "sense_pool(0x%p): free\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
5816
ioc->sense));
drivers/scsi/mpt3sas/mpt3sas_base.c
5817
ioc->sense = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5820
if (ioc->reply) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5821
dma_pool_free(ioc->reply_dma_pool, ioc->reply, ioc->reply_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5822
dma_pool_destroy(ioc->reply_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5823
dexitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5824
ioc_info(ioc, "reply_pool(0x%p): free\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
5825
ioc->reply));
drivers/scsi/mpt3sas/mpt3sas_base.c
5826
ioc->reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5829
if (ioc->reply_free) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5830
dma_pool_free(ioc->reply_free_dma_pool, ioc->reply_free,
drivers/scsi/mpt3sas/mpt3sas_base.c
5831
ioc->reply_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5832
dma_pool_destroy(ioc->reply_free_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5833
dexitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5834
ioc_info(ioc, "reply_free_pool(0x%p): free\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
5835
ioc->reply_free));
drivers/scsi/mpt3sas/mpt3sas_base.c
5836
ioc->reply_free = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5839
if (ioc->reply_post) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5845
if (ioc->reply_post[i].reply_post_free) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5847
ioc->reply_post_free_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
5848
ioc->reply_post[i].reply_post_free,
drivers/scsi/mpt3sas/mpt3sas_base.c
5849
ioc->reply_post[i].reply_post_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5850
dexitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5852
ioc->reply_post[i].reply_post_free));
drivers/scsi/mpt3sas/mpt3sas_base.c
5853
ioc->reply_post[i].reply_post_free =
drivers/scsi/mpt3sas/mpt3sas_base.c
5859
dma_pool_destroy(ioc->reply_post_free_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5860
if (ioc->reply_post_free_array &&
drivers/scsi/mpt3sas/mpt3sas_base.c
5861
ioc->rdpq_array_enable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5862
dma_pool_free(ioc->reply_post_free_array_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
5863
ioc->reply_post_free_array,
drivers/scsi/mpt3sas/mpt3sas_base.c
5864
ioc->reply_post_free_array_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5865
ioc->reply_post_free_array = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5867
dma_pool_destroy(ioc->reply_post_free_array_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5868
kfree(ioc->reply_post);
drivers/scsi/mpt3sas/mpt3sas_base.c
5871
if (ioc->pcie_sgl_dma_pool) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5872
for (i = 0; i < ioc->scsiio_depth; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5873
dma_pool_free(ioc->pcie_sgl_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
5874
ioc->pcie_sg_lookup[i].pcie_sgl,
drivers/scsi/mpt3sas/mpt3sas_base.c
5875
ioc->pcie_sg_lookup[i].pcie_sgl_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5876
ioc->pcie_sg_lookup[i].pcie_sgl = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5878
dma_pool_destroy(ioc->pcie_sgl_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5880
kfree(ioc->pcie_sg_lookup);
drivers/scsi/mpt3sas/mpt3sas_base.c
5881
ioc->pcie_sg_lookup = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5883
if (ioc->config_page) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5884
dexitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
5885
ioc_info(ioc, "config_page(0x%p): free\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
5886
ioc->config_page));
drivers/scsi/mpt3sas/mpt3sas_base.c
5887
dma_free_coherent(&ioc->pdev->dev, ioc->config_page_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
5888
ioc->config_page, ioc->config_page_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5891
kfree(ioc->hpr_lookup);
drivers/scsi/mpt3sas/mpt3sas_base.c
5892
ioc->hpr_lookup = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5893
kfree(ioc->internal_lookup);
drivers/scsi/mpt3sas/mpt3sas_base.c
5894
ioc->internal_lookup = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5895
if (ioc->chain_lookup) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5896
for (i = 0; i < ioc->scsiio_depth; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5897
for (j = ioc->chains_per_prp_buffer;
drivers/scsi/mpt3sas/mpt3sas_base.c
5898
j < ioc->chains_needed_per_io; j++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5899
ct = &ioc->chain_lookup[i].chains_per_smid[j];
drivers/scsi/mpt3sas/mpt3sas_base.c
5901
dma_pool_free(ioc->chain_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
5905
kfree(ioc->chain_lookup[i].chains_per_smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
5907
dma_pool_destroy(ioc->chain_dma_pool);
drivers/scsi/mpt3sas/mpt3sas_base.c
5908
kfree(ioc->chain_lookup);
drivers/scsi/mpt3sas/mpt3sas_base.c
5909
ioc->chain_lookup = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5912
kfree(ioc->io_queue_num);
drivers/scsi/mpt3sas/mpt3sas_base.c
5913
ioc->io_queue_num = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
5945
_base_reduce_hba_queue_depth(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
5949
if ((ioc->hba_queue_depth - reduce_sz) >
drivers/scsi/mpt3sas/mpt3sas_base.c
5950
(ioc->internal_depth + INTERNAL_SCSIIO_CMDS_COUNT)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5951
ioc->hba_queue_depth -= reduce_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
596
src_chain_addr[i], ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
5967
_base_allocate_pcie_sgl_pool(struct MPT3SAS_ADAPTER *ioc, u32 sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
5972
ioc->pcie_sgl_dma_pool =
drivers/scsi/mpt3sas/mpt3sas_base.c
5973
dma_pool_create("PCIe SGL pool", &ioc->pdev->dev, sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
5974
ioc->page_size, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
5975
if (!ioc->pcie_sgl_dma_pool) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5976
ioc_err(ioc, "PCIe SGL pool: dma_pool_create failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5980
ioc->chains_per_prp_buffer = sz/ioc->chain_segment_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
5981
ioc->chains_per_prp_buffer =
drivers/scsi/mpt3sas/mpt3sas_base.c
5982
min(ioc->chains_per_prp_buffer, ioc->chains_needed_per_io);
drivers/scsi/mpt3sas/mpt3sas_base.c
5983
for (i = 0; i < ioc->scsiio_depth; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5984
ioc->pcie_sg_lookup[i].pcie_sgl =
drivers/scsi/mpt3sas/mpt3sas_base.c
5985
dma_pool_alloc(ioc->pcie_sgl_dma_pool, GFP_KERNEL,
drivers/scsi/mpt3sas/mpt3sas_base.c
5986
&ioc->pcie_sg_lookup[i].pcie_sgl_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5987
if (!ioc->pcie_sg_lookup[i].pcie_sgl) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5988
ioc_err(ioc, "PCIe SGL pool: dma_pool_alloc failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
5993
ioc->pcie_sg_lookup[i].pcie_sgl_dma, sz)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
5994
ioc_err(ioc, "PCIE SGLs are not in same 4G !! pcie sgl (0x%p) dma = (0x%llx)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
5995
ioc->pcie_sg_lookup[i].pcie_sgl,
drivers/scsi/mpt3sas/mpt3sas_base.c
5997
ioc->pcie_sg_lookup[i].pcie_sgl_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
5998
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
6002
for (j = 0; j < ioc->chains_per_prp_buffer; j++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6003
ct = &ioc->chain_lookup[i].chains_per_smid[j];
drivers/scsi/mpt3sas/mpt3sas_base.c
6005
ioc->pcie_sg_lookup[i].pcie_sgl +
drivers/scsi/mpt3sas/mpt3sas_base.c
6006
(j * ioc->chain_segment_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6008
ioc->pcie_sg_lookup[i].pcie_sgl_dma +
drivers/scsi/mpt3sas/mpt3sas_base.c
6009
(j * ioc->chain_segment_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6012
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6014
ioc->scsiio_depth, sz, (sz * ioc->scsiio_depth)/1024));
drivers/scsi/mpt3sas/mpt3sas_base.c
6015
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6017
ioc->chains_per_prp_buffer));
drivers/scsi/mpt3sas/mpt3sas_base.c
6030
_base_allocate_chain_dma_pool(struct MPT3SAS_ADAPTER *ioc, u32 sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
6035
ioc->chain_dma_pool = dma_pool_create("chain pool", &ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_base.c
6036
ioc->chain_segment_sz, 16, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6037
if (!ioc->chain_dma_pool)
drivers/scsi/mpt3sas/mpt3sas_base.c
6040
for (i = 0; i < ioc->scsiio_depth; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6041
for (j = ioc->chains_per_prp_buffer;
drivers/scsi/mpt3sas/mpt3sas_base.c
6042
j < ioc->chains_needed_per_io; j++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6043
ctr = &ioc->chain_lookup[i].chains_per_smid[j];
drivers/scsi/mpt3sas/mpt3sas_base.c
6044
ctr->chain_buffer = dma_pool_alloc(ioc->chain_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
6049
ctr->chain_buffer_dma, ioc->chain_segment_sz)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6050
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6054
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
6059
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6061
ioc->scsiio_depth, ioc->chain_segment_sz, ((ioc->scsiio_depth *
drivers/scsi/mpt3sas/mpt3sas_base.c
6062
(ioc->chains_needed_per_io - ioc->chains_per_prp_buffer) *
drivers/scsi/mpt3sas/mpt3sas_base.c
6063
ioc->chain_segment_sz))/1024));
drivers/scsi/mpt3sas/mpt3sas_base.c
6075
_base_allocate_sense_dma_pool(struct MPT3SAS_ADAPTER *ioc, u32 sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
6077
ioc->sense_dma_pool =
drivers/scsi/mpt3sas/mpt3sas_base.c
6078
dma_pool_create("sense pool", &ioc->pdev->dev, sz, 4, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6079
if (!ioc->sense_dma_pool)
drivers/scsi/mpt3sas/mpt3sas_base.c
6081
ioc->sense = dma_pool_alloc(ioc->sense_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
6082
GFP_KERNEL, &ioc->sense_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
6083
if (!ioc->sense)
drivers/scsi/mpt3sas/mpt3sas_base.c
6085
if (!mpt3sas_check_same_4gb_region(ioc->sense_dma, sz)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6086
dinitprintk(ioc, pr_err(
drivers/scsi/mpt3sas/mpt3sas_base.c
6088
ioc->sense, (unsigned long long) ioc->sense_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6089
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
6092
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6094
ioc->sense, (unsigned long long)ioc->sense_dma,
drivers/scsi/mpt3sas/mpt3sas_base.c
6095
ioc->scsiio_depth, SCSI_SENSE_BUFFERSIZE, sz/1024);
drivers/scsi/mpt3sas/mpt3sas_base.c
610
struct MPT3SAS_ADAPTER *ioc = (struct MPT3SAS_ADAPTER *)arg;
drivers/scsi/mpt3sas/mpt3sas_base.c
6107
_base_allocate_reply_pool(struct MPT3SAS_ADAPTER *ioc, u32 sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
6110
ioc->reply_dma_pool = dma_pool_create("reply pool",
drivers/scsi/mpt3sas/mpt3sas_base.c
6111
&ioc->pdev->dev, sz, 4, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6112
if (!ioc->reply_dma_pool)
drivers/scsi/mpt3sas/mpt3sas_base.c
6114
ioc->reply = dma_pool_alloc(ioc->reply_dma_pool, GFP_KERNEL,
drivers/scsi/mpt3sas/mpt3sas_base.c
6115
&ioc->reply_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
6116
if (!ioc->reply)
drivers/scsi/mpt3sas/mpt3sas_base.c
6118
if (!mpt3sas_check_same_4gb_region(ioc->reply_dma, sz)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6119
dinitprintk(ioc, pr_err(
drivers/scsi/mpt3sas/mpt3sas_base.c
6121
ioc->reply, (unsigned long long) ioc->reply_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6122
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
6125
ioc->reply_dma_min_address = (u32)(ioc->reply_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
6126
ioc->reply_dma_max_address = (u32)(ioc->reply_dma) + sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
6127
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6129
ioc->reply, (unsigned long long)ioc->reply_dma,
drivers/scsi/mpt3sas/mpt3sas_base.c
613
if (!ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
6130
ioc->reply_free_queue_depth, ioc->reply_sz, sz/1024);
drivers/scsi/mpt3sas/mpt3sas_base.c
6142
_base_allocate_reply_free_dma_pool(struct MPT3SAS_ADAPTER *ioc, u32 sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
6145
ioc->reply_free_dma_pool = dma_pool_create(
drivers/scsi/mpt3sas/mpt3sas_base.c
6146
"reply_free pool", &ioc->pdev->dev, sz, 16, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6147
if (!ioc->reply_free_dma_pool)
drivers/scsi/mpt3sas/mpt3sas_base.c
6149
ioc->reply_free = dma_pool_alloc(ioc->reply_free_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
6150
GFP_KERNEL, &ioc->reply_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
6151
if (!ioc->reply_free)
drivers/scsi/mpt3sas/mpt3sas_base.c
6153
if (!mpt3sas_check_same_4gb_region(ioc->reply_free_dma, sz)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6154
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6156
ioc->reply_free, (unsigned long long) ioc->reply_free_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6157
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
616
pdev = ioc->pdev;
drivers/scsi/mpt3sas/mpt3sas_base.c
6160
memset(ioc->reply_free, 0, sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6161
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6163
ioc->reply_free, ioc->reply_free_queue_depth, 4, sz/1024));
drivers/scsi/mpt3sas/mpt3sas_base.c
6164
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6166
(unsigned long long)ioc->reply_free_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6179
_base_allocate_reply_post_free_array(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6182
ioc->reply_post_free_array_dma_pool =
drivers/scsi/mpt3sas/mpt3sas_base.c
6184
&ioc->pdev->dev, reply_post_free_array_sz, 16, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6185
if (!ioc->reply_post_free_array_dma_pool)
drivers/scsi/mpt3sas/mpt3sas_base.c
6187
ioc->reply_post_free_array =
drivers/scsi/mpt3sas/mpt3sas_base.c
6188
dma_pool_alloc(ioc->reply_post_free_array_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
6189
GFP_KERNEL, &ioc->reply_post_free_array_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
6190
if (!ioc->reply_post_free_array)
drivers/scsi/mpt3sas/mpt3sas_base.c
6192
if (!mpt3sas_check_same_4gb_region(ioc->reply_post_free_array_dma,
drivers/scsi/mpt3sas/mpt3sas_base.c
6194
dinitprintk(ioc, pr_err(
drivers/scsi/mpt3sas/mpt3sas_base.c
6196
ioc->reply_free,
drivers/scsi/mpt3sas/mpt3sas_base.c
6197
(unsigned long long) ioc->reply_free_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6198
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
6211
base_alloc_rdpq_dma_pool(struct MPT3SAS_ADAPTER *ioc, int sz)
drivers/scsi/mpt3sas/mpt3sas_base.c
6215
int reply_post_free_sz = ioc->reply_post_queue_depth *
drivers/scsi/mpt3sas/mpt3sas_base.c
6217
int count = ioc->rdpq_array_enable ? ioc->reply_queue_count : 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
6219
ioc->reply_post = kzalloc_objs(struct reply_post_struct, count);
drivers/scsi/mpt3sas/mpt3sas_base.c
6220
if (!ioc->reply_post)
drivers/scsi/mpt3sas/mpt3sas_base.c
6233
ioc->reply_post_free_dma_pool =
drivers/scsi/mpt3sas/mpt3sas_base.c
6235
&ioc->pdev->dev, sz, 16, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6236
if (!ioc->reply_post_free_dma_pool)
drivers/scsi/mpt3sas/mpt3sas_base.c
6240
ioc->reply_post[i].reply_post_free =
drivers/scsi/mpt3sas/mpt3sas_base.c
6241
dma_pool_zalloc(ioc->reply_post_free_dma_pool,
drivers/scsi/mpt3sas/mpt3sas_base.c
6243
&ioc->reply_post[i].reply_post_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
6244
if (!ioc->reply_post[i].reply_post_free)
drivers/scsi/mpt3sas/mpt3sas_base.c
6256
ioc->reply_post[i].reply_post_free_dma, sz)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6257
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6258
ioc_err(ioc, "bad Replypost free pool(0x%p)"
drivers/scsi/mpt3sas/mpt3sas_base.c
6260
ioc->reply_post[i].reply_post_free,
drivers/scsi/mpt3sas/mpt3sas_base.c
6262
ioc->reply_post[i].reply_post_free_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6268
ioc->reply_post[i].reply_post_free =
drivers/scsi/mpt3sas/mpt3sas_base.c
6270
((long)ioc->reply_post[i-1].reply_post_free
drivers/scsi/mpt3sas/mpt3sas_base.c
6272
ioc->reply_post[i].reply_post_free_dma =
drivers/scsi/mpt3sas/mpt3sas_base.c
6274
(ioc->reply_post[i-1].reply_post_free_dma +
drivers/scsi/mpt3sas/mpt3sas_base.c
6288
_base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
629
static void _base_sync_drv_fw_timestamp(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
6302
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
6306
facts = &ioc->facts;
drivers/scsi/mpt3sas/mpt3sas_base.c
6312
if (ioc->hba_mpi_version_belonged == MPI2_VERSION)
drivers/scsi/mpt3sas/mpt3sas_base.c
6323
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
6324
ioc->shost->sg_tablesize = MPT_MIN_PHYS_SEGMENTS;
drivers/scsi/mpt3sas/mpt3sas_base.c
6331
ioc_warn(ioc, "sg_tablesize(%u) is bigger than kernel defined SG_CHUNK_SIZE(%u)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6334
ioc->shost->sg_tablesize = sg_tablesize;
drivers/scsi/mpt3sas/mpt3sas_base.c
6337
ioc->internal_depth = min_t(int, (facts->HighPriorityCredit + (5)),
drivers/scsi/mpt3sas/mpt3sas_base.c
6339
if (ioc->internal_depth < INTERNAL_CMDS_COUNT) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6342
ioc_err(ioc, "IOC doesn't have enough Request Credits, it has just %d number of credits\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6346
ioc->internal_depth = 10;
drivers/scsi/mpt3sas/mpt3sas_base.c
6349
ioc->hi_priority_depth = ioc->internal_depth - (5);
drivers/scsi/mpt3sas/mpt3sas_base.c
6353
ioc->internal_depth, facts->RequestCredit);
drivers/scsi/mpt3sas/mpt3sas_base.c
6358
(MPT3SAS_KDUMP_SCSI_IO_DEPTH + ioc->internal_depth));
drivers/scsi/mpt3sas/mpt3sas_base.c
6367
ioc->hba_queue_depth = max_request_credit + ioc->hi_priority_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6370
ioc->request_sz = facts->IOCRequestFrameSize * 4;
drivers/scsi/mpt3sas/mpt3sas_base.c
6373
ioc->reply_sz = facts->ReplyFrameSize * 4;
drivers/scsi/mpt3sas/mpt3sas_base.c
6376
if (ioc->hba_mpi_version_belonged != MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6378
ioc->chain_segment_sz =
drivers/scsi/mpt3sas/mpt3sas_base.c
638
mutex_lock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
6383
ioc->chain_segment_sz = DEFAULT_NUM_FWCHAIN_ELEMTS *
drivers/scsi/mpt3sas/mpt3sas_base.c
6386
ioc->chain_segment_sz = ioc->request_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
6389
sge_size = max_t(u16, ioc->sge_size, ioc->sge_size_ieee);
drivers/scsi/mpt3sas/mpt3sas_base.c
639
if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6394
max_sge_elements = ioc->request_sz - ((sizeof(Mpi2SCSIIORequest_t) -
drivers/scsi/mpt3sas/mpt3sas_base.c
6396
ioc->max_sges_in_main_message = max_sge_elements/sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
6399
max_sge_elements = ioc->chain_segment_sz - sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
640
ioc_err(ioc, "scsih_cmd in use %s\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
6400
ioc->max_sges_in_chain_message = max_sge_elements/sge_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
6405
chains_needed_per_io = ((ioc->shost->sg_tablesize -
drivers/scsi/mpt3sas/mpt3sas_base.c
6406
ioc->max_sges_in_main_message)/ioc->max_sges_in_chain_message)
drivers/scsi/mpt3sas/mpt3sas_base.c
6410
ioc->shost->sg_tablesize = min_t(u16,
drivers/scsi/mpt3sas/mpt3sas_base.c
6411
ioc->max_sges_in_main_message + (ioc->max_sges_in_chain_message
drivers/scsi/mpt3sas/mpt3sas_base.c
6412
* chains_needed_per_io), ioc->shost->sg_tablesize);
drivers/scsi/mpt3sas/mpt3sas_base.c
6414
ioc->chains_needed_per_io = chains_needed_per_io;
drivers/scsi/mpt3sas/mpt3sas_base.c
6417
ioc->reply_free_queue_depth = ioc->hba_queue_depth + 64;
drivers/scsi/mpt3sas/mpt3sas_base.c
6420
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
6421
ioc->reply_post_queue_depth = ioc->reply_free_queue_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6424
ioc->reply_post_queue_depth = ioc->hba_queue_depth +
drivers/scsi/mpt3sas/mpt3sas_base.c
6425
ioc->reply_free_queue_depth + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
6427
if (ioc->reply_post_queue_depth % 16)
drivers/scsi/mpt3sas/mpt3sas_base.c
6428
ioc->reply_post_queue_depth += 16 -
drivers/scsi/mpt3sas/mpt3sas_base.c
6429
(ioc->reply_post_queue_depth % 16);
drivers/scsi/mpt3sas/mpt3sas_base.c
643
ioc->scsih_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
6432
if (ioc->reply_post_queue_depth >
drivers/scsi/mpt3sas/mpt3sas_base.c
6434
ioc->reply_post_queue_depth =
drivers/scsi/mpt3sas/mpt3sas_base.c
6437
ioc->hba_queue_depth =
drivers/scsi/mpt3sas/mpt3sas_base.c
6438
((ioc->reply_post_queue_depth - 64) / 2) - 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
6439
ioc->reply_free_queue_depth = ioc->hba_queue_depth + 64;
drivers/scsi/mpt3sas/mpt3sas_base.c
644
smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
6442
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6445
ioc->max_sges_in_main_message,
drivers/scsi/mpt3sas/mpt3sas_base.c
6446
ioc->max_sges_in_chain_message,
drivers/scsi/mpt3sas/mpt3sas_base.c
6447
ioc->shost->sg_tablesize,
drivers/scsi/mpt3sas/mpt3sas_base.c
6448
ioc->chains_needed_per_io);
drivers/scsi/mpt3sas/mpt3sas_base.c
6451
reply_post_free_sz = ioc->reply_post_queue_depth *
drivers/scsi/mpt3sas/mpt3sas_base.c
6454
if ((_base_is_controller_msix_enabled(ioc) && !ioc->rdpq_array_enable)
drivers/scsi/mpt3sas/mpt3sas_base.c
6455
|| (ioc->reply_queue_count < RDPQ_MAX_INDEX_IN_ONE_CHUNK))
drivers/scsi/mpt3sas/mpt3sas_base.c
6456
rdpq_sz = reply_post_free_sz * ioc->reply_queue_count;
drivers/scsi/mpt3sas/mpt3sas_base.c
6457
ret = base_alloc_rdpq_dma_pool(ioc, rdpq_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
646
ioc_err(ioc, "Failed obtaining a smid %s\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
6463
_base_release_memory_pools(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
6464
ioc->use_32bit_dma = true;
drivers/scsi/mpt3sas/mpt3sas_base.c
6465
if (_base_config_dma_addressing(ioc, ioc->pdev) != 0) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6466
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6467
"32 DMA mask failed %s\n", pci_name(ioc->pdev));
drivers/scsi/mpt3sas/mpt3sas_base.c
647
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
6470
if (base_alloc_rdpq_dma_pool(ioc, rdpq_sz))
drivers/scsi/mpt3sas/mpt3sas_base.c
6474
total_sz = rdpq_sz * (!ioc->rdpq_array_enable ? 1 :
drivers/scsi/mpt3sas/mpt3sas_base.c
6475
DIV_ROUND_UP(ioc->reply_queue_count, RDPQ_MAX_INDEX_IN_ONE_CHUNK));
drivers/scsi/mpt3sas/mpt3sas_base.c
6476
ioc->scsiio_depth = ioc->hba_queue_depth -
drivers/scsi/mpt3sas/mpt3sas_base.c
6477
ioc->hi_priority_depth - ioc->internal_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6482
ioc->shost->can_queue = ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT;
drivers/scsi/mpt3sas/mpt3sas_base.c
6483
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6484
ioc_info(ioc, "scsi host: can_queue depth (%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6485
ioc->shost->can_queue));
drivers/scsi/mpt3sas/mpt3sas_base.c
6490
ioc->chain_depth = ioc->chains_needed_per_io * ioc->scsiio_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6491
sz = ((ioc->scsiio_depth + 1) * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6494
sz += (ioc->hi_priority_depth * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6497
sz += (ioc->internal_depth * ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6499
ioc->request_dma_sz = sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
650
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
6500
ioc->request = dma_alloc_coherent(&ioc->pdev->dev, sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
6501
&ioc->request_dma, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
6502
if (!ioc->request) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6503
ioc_err(ioc, "request pool: dma_alloc_coherent failed: hba_depth(%d), chains_per_io(%d), frame_sz(%d), total(%d kB)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6504
ioc->hba_queue_depth, ioc->chains_needed_per_io,
drivers/scsi/mpt3sas/mpt3sas_base.c
6505
ioc->request_sz, sz / 1024);
drivers/scsi/mpt3sas/mpt3sas_base.c
6506
if (ioc->scsiio_depth < MPT3SAS_SAS_QUEUE_DEPTH)
drivers/scsi/mpt3sas/mpt3sas_base.c
6509
ioc->hba_queue_depth -= retry_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
651
ioc->scsih_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
6510
_base_release_memory_pools(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
6515
ioc_err(ioc, "request pool: dma_alloc_coherent succeed: hba_depth(%d), chains_per_io(%d), frame_sz(%d), total(%d kb)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6516
ioc->hba_queue_depth, ioc->chains_needed_per_io,
drivers/scsi/mpt3sas/mpt3sas_base.c
6517
ioc->request_sz, sz / 1024);
drivers/scsi/mpt3sas/mpt3sas_base.c
6520
ioc->hi_priority = ioc->request + ((ioc->scsiio_depth + 1) *
drivers/scsi/mpt3sas/mpt3sas_base.c
6521
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6522
ioc->hi_priority_dma = ioc->request_dma + ((ioc->scsiio_depth + 1) *
drivers/scsi/mpt3sas/mpt3sas_base.c
6523
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6526
ioc->internal = ioc->hi_priority + (ioc->hi_priority_depth *
drivers/scsi/mpt3sas/mpt3sas_base.c
6527
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6528
ioc->internal_dma = ioc->hi_priority_dma + (ioc->hi_priority_depth *
drivers/scsi/mpt3sas/mpt3sas_base.c
6529
ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6531
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6534
ioc->request, (unsigned long long) ioc->request_dma,
drivers/scsi/mpt3sas/mpt3sas_base.c
6535
ioc->hba_queue_depth, ioc->request_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
6536
(ioc->hba_queue_depth * ioc->request_sz) / 1024);
drivers/scsi/mpt3sas/mpt3sas_base.c
6540
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6541
ioc_info(ioc, "scsiio(0x%p): depth(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6542
ioc->request, ioc->scsiio_depth));
drivers/scsi/mpt3sas/mpt3sas_base.c
6544
ioc->chain_depth = min_t(u32, ioc->chain_depth, MAX_CHAIN_DEPTH);
drivers/scsi/mpt3sas/mpt3sas_base.c
6545
sz = ioc->scsiio_depth * sizeof(struct chain_lookup);
drivers/scsi/mpt3sas/mpt3sas_base.c
6546
ioc->chain_lookup = kzalloc(sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
6547
if (!ioc->chain_lookup) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6548
ioc_err(ioc, "chain_lookup: __get_free_pages failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6552
sz = ioc->chains_needed_per_io * sizeof(struct chain_tracker);
drivers/scsi/mpt3sas/mpt3sas_base.c
6553
for (i = 0; i < ioc->scsiio_depth; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6554
ioc->chain_lookup[i].chains_per_smid = kzalloc(sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
6555
if (!ioc->chain_lookup[i].chains_per_smid) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6556
ioc_err(ioc, "chain_lookup: kzalloc failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6562
ioc->hpr_lookup = kzalloc_objs(struct request_tracker,
drivers/scsi/mpt3sas/mpt3sas_base.c
6563
ioc->hi_priority_depth);
drivers/scsi/mpt3sas/mpt3sas_base.c
6564
if (!ioc->hpr_lookup) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6565
ioc_err(ioc, "hpr_lookup: kcalloc failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6568
ioc->hi_priority_smid = ioc->scsiio_depth + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
6569
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6570
ioc_info(ioc, "hi_priority(0x%p): depth(%d), start smid(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6571
ioc->hi_priority,
drivers/scsi/mpt3sas/mpt3sas_base.c
6572
ioc->hi_priority_depth, ioc->hi_priority_smid));
drivers/scsi/mpt3sas/mpt3sas_base.c
6575
ioc->internal_lookup = kzalloc_objs(struct request_tracker,
drivers/scsi/mpt3sas/mpt3sas_base.c
6576
ioc->internal_depth);
drivers/scsi/mpt3sas/mpt3sas_base.c
6577
if (!ioc->internal_lookup) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6578
ioc_err(ioc, "internal_lookup: kcalloc failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6581
ioc->internal_smid = ioc->hi_priority_smid + ioc->hi_priority_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6582
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6583
ioc_info(ioc, "internal(0x%p): depth(%d), start smid(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6584
ioc->internal,
drivers/scsi/mpt3sas/mpt3sas_base.c
6585
ioc->internal_depth, ioc->internal_smid));
drivers/scsi/mpt3sas/mpt3sas_base.c
6587
ioc->io_queue_num = kcalloc(ioc->scsiio_depth,
drivers/scsi/mpt3sas/mpt3sas_base.c
6589
if (!ioc->io_queue_num)
drivers/scsi/mpt3sas/mpt3sas_base.c
660
init_completion(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
6605
ioc->chains_per_prp_buffer = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
6606
if (ioc->facts.ProtocolFlags & MPI2_IOCFACTS_PROTOCOL_NVME_DEVICES) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6608
(ioc->shost->sg_tablesize * NVME_PRP_SIZE) - 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
6609
nvme_blocks_needed /= (ioc->page_size - NVME_PRP_SIZE);
drivers/scsi/mpt3sas/mpt3sas_base.c
661
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
6612
sz = sizeof(struct pcie_sg_list) * ioc->scsiio_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6613
ioc->pcie_sg_lookup = kzalloc(sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
6614
if (!ioc->pcie_sg_lookup) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6615
ioc_info(ioc, "PCIe SGL lookup: kzalloc failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6618
sz = nvme_blocks_needed * ioc->page_size;
drivers/scsi/mpt3sas/mpt3sas_base.c
6619
rc = _base_allocate_pcie_sgl_pool(ioc, sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
662
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6624
total_sz += sz * ioc->scsiio_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
6627
rc = _base_allocate_chain_dma_pool(ioc, ioc->chain_segment_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6632
total_sz += ioc->chain_segment_sz * ((ioc->chains_needed_per_io -
drivers/scsi/mpt3sas/mpt3sas_base.c
6633
ioc->chains_per_prp_buffer) * ioc->scsiio_depth);
drivers/scsi/mpt3sas/mpt3sas_base.c
6634
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6635
ioc_info(ioc, "chain pool depth(%d), frame_size(%d), pool_size(%d kB)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6636
ioc->chain_depth, ioc->chain_segment_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
6637
(ioc->chain_depth * ioc->chain_segment_sz) / 1024));
drivers/scsi/mpt3sas/mpt3sas_base.c
6639
sense_sz = ioc->scsiio_depth * SCSI_SENSE_BUFFERSIZE;
drivers/scsi/mpt3sas/mpt3sas_base.c
6640
rc = _base_allocate_sense_dma_pool(ioc, sense_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6647
sz = ioc->reply_free_queue_depth * ioc->reply_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
6648
rc = _base_allocate_reply_pool(ioc, sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
665
wait_for_completion_timeout(&ioc->scsih_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_base.c
6656
sz = ioc->reply_free_queue_depth * 4;
drivers/scsi/mpt3sas/mpt3sas_base.c
6657
rc = _base_allocate_reply_free_dma_pool(ioc, sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6662
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6663
ioc_info(ioc, "reply_free_dma (0x%llx)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6664
(unsigned long long)ioc->reply_free_dma));
drivers/scsi/mpt3sas/mpt3sas_base.c
6666
if (ioc->rdpq_array_enable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6667
reply_post_free_array_sz = ioc->reply_queue_count *
drivers/scsi/mpt3sas/mpt3sas_base.c
6669
rc = _base_allocate_reply_post_free_array(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
667
if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6676
ioc->config_page_sz = 512;
drivers/scsi/mpt3sas/mpt3sas_base.c
6677
ioc->config_page = dma_alloc_coherent(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_base.c
6678
ioc->config_page_sz, &ioc->config_page_dma, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
6679
if (!ioc->config_page) {
drivers/scsi/mpt3sas/mpt3sas_base.c
668
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6680
ioc_err(ioc, "config page: dma_pool_alloc failed\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6684
ioc_info(ioc, "config page(0x%p) - dma(0x%llx): size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6685
ioc->config_page, (unsigned long long)ioc->config_page_dma,
drivers/scsi/mpt3sas/mpt3sas_base.c
6686
ioc->config_page_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
6687
total_sz += ioc->config_page_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
6689
ioc_info(ioc, "Allocated physical memory: size(%d kB)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
669
ioc->scsih_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_base.c
6691
ioc_info(ioc, "Current Controller Queue Depth(%d),Max Controller Queue Depth(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6692
ioc->shost->can_queue, facts->RequestCredit);
drivers/scsi/mpt3sas/mpt3sas_base.c
6693
ioc_info(ioc, "Scatter Gather Elements per IO(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6694
ioc->shost->sg_tablesize);
drivers/scsi/mpt3sas/mpt3sas_base.c
6698
_base_release_memory_pools(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
6699
if (ioc->use_32bit_dma && (ioc->dma_mask > 32)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6701
if (_base_config_dma_addressing(ioc, ioc->pdev) != 0) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6703
pci_name(ioc->pdev));
drivers/scsi/mpt3sas/mpt3sas_base.c
6706
} else if (_base_reduce_hba_queue_depth(ioc) != 0)
drivers/scsi/mpt3sas/mpt3sas_base.c
6723
mpt3sas_base_get_iocstate(struct MPT3SAS_ADAPTER *ioc, int cooked)
drivers/scsi/mpt3sas/mpt3sas_base.c
6727
s = ioc->base_readl_ext_retry(&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
673
if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_base.c
674
mpi_reply = ioc->scsih_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_base.c
6741
_base_wait_on_iocstate(struct MPT3SAS_ADAPTER *ioc, u32 ioc_state, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
6749
current_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
675
dinitprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6771
_base_dump_reg_set(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
6774
u32 __iomem *reg = (u32 __iomem *)ioc->chip;
drivers/scsi/mpt3sas/mpt3sas_base.c
6776
ioc_info(ioc, "System Register set:\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6793
_base_wait_for_doorbell_int(struct MPT3SAS_ADAPTER *ioc, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
6801
int_status = ioc->base_readl(&ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
6803
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6804
ioc_info(ioc, "%s: successful count(%d), timeout(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6813
ioc_err(ioc, "%s: failed due to timeout count(%d), int_status(%x)!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6819
_base_spin_on_doorbell_int(struct MPT3SAS_ADAPTER *ioc, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
682
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_base.c
6827
int_status = ioc->base_readl(&ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
6829
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
683
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
6830
ioc_info(ioc, "%s: successful count(%d), timeout(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6839
ioc_err(ioc, "%s: failed due to timeout count(%d), int_status(%x)!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
685
mutex_unlock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
6856
_base_wait_for_doorbell_ack(struct MPT3SAS_ADAPTER *ioc, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
6865
int_status = ioc->base_readl(&ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
6867
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6868
ioc_info(ioc, "%s: successful count(%d), timeout(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6872
doorbell = ioc->base_readl_ext_retry(&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
6875
mpt3sas_print_fault_code(ioc, doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
6880
mpt3sas_print_coredump_info(ioc, doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
6891
ioc_err(ioc, "%s: failed due to timeout count(%d), int_status(%x)!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6904
_base_wait_for_doorbell_not_used(struct MPT3SAS_ADAPTER *ioc, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
6912
doorbell_reg = ioc->base_readl_ext_retry(&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
6914
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6915
ioc_info(ioc, "%s: successful count(%d), timeout(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6924
ioc_err(ioc, "%s: failed due to timeout count(%d), doorbell_reg(%x)!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
6938
_base_send_ioc_reset(struct MPT3SAS_ADAPTER *ioc, u8 reset_type, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
6945
ioc_err(ioc, "%s: unknown reset_type\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
6949
if (!(ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_base.c
6953
ioc_info(ioc, "sending message unit reset !!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
6956
&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
6957
if ((_base_wait_for_doorbell_ack(ioc, 15))) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6962
ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_READY, timeout);
drivers/scsi/mpt3sas/mpt3sas_base.c
6964
ioc_err(ioc, "%s: failed going to ready state (ioc_state=0x%x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
697
struct MPT3SAS_ADAPTER *ioc =
drivers/scsi/mpt3sas/mpt3sas_base.c
6971
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
6972
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
6978
MPI2_IOC_STATE_COREDUMP && (ioc->is_driver_loading == 1 ||
drivers/scsi/mpt3sas/mpt3sas_base.c
6979
ioc->fault_reset_work_q == NULL)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
6981
&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
6982
mpt3sas_print_coredump_info(ioc, ioc_state);
drivers/scsi/mpt3sas/mpt3sas_base.c
6983
mpt3sas_base_wait_for_coredump_completion(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
6986
&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
6988
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
6990
ioc_info(ioc, "message unit reset: %s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7006
mpt3sas_wait_for_ioc(struct MPT3SAS_ADAPTER *ioc, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
7012
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_base.c
7023
if (ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_base.c
7027
ioc_info(ioc, "%s: waiting for operational state(count=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7031
ioc_err(ioc, "%s: failed due to ioc not operational\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7035
ioc_info(ioc, "ioc is operational\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
705
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
7051
_base_handshake_req_reply_wait(struct MPT3SAS_ADAPTER *ioc, int request_bytes,
drivers/scsi/mpt3sas/mpt3sas_base.c
706
if ((ioc->shost_recovery && (ioc->ioc_coredump_loop == 0)) ||
drivers/scsi/mpt3sas/mpt3sas_base.c
7061
if ((ioc->base_readl_ext_retry(&ioc->chip->Doorbell) & MPI2_DOORBELL_USED)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7062
ioc_err(ioc, "doorbell is in use (line=%d)\n", __LINE__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7067
if (ioc->base_readl(&ioc->chip->HostInterruptStatus) &
drivers/scsi/mpt3sas/mpt3sas_base.c
7069
writel(0, &ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
707
ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_base.c
7074
&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
7076
if ((_base_spin_on_doorbell_int(ioc, 5))) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7077
ioc_err(ioc, "doorbell handshake int failed (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7081
writel(0, &ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
7083
if ((_base_wait_for_doorbell_ack(ioc, 5))) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7084
ioc_err(ioc, "doorbell handshake ack failed (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
709
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
7091
writel(cpu_to_le32(request[i]), &ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
7092
if ((_base_wait_for_doorbell_ack(ioc, 5)))
drivers/scsi/mpt3sas/mpt3sas_base.c
7097
ioc_err(ioc, "doorbell handshake sending request failed (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7103
if ((_base_wait_for_doorbell_int(ioc, timeout))) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7104
ioc_err(ioc, "doorbell handshake int failed (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
711
doorbell = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
7110
reply[0] = le16_to_cpu(ioc->base_readl_ext_retry(&ioc->chip->Doorbell)
drivers/scsi/mpt3sas/mpt3sas_base.c
7112
writel(0, &ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
7113
if ((_base_wait_for_doorbell_int(ioc, 5))) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7114
ioc_err(ioc, "doorbell handshake int failed (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7118
reply[1] = le16_to_cpu(ioc->base_readl_ext_retry(&ioc->chip->Doorbell)
drivers/scsi/mpt3sas/mpt3sas_base.c
7120
writel(0, &ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
7123
if ((_base_wait_for_doorbell_int(ioc, 5))) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7124
ioc_err(ioc, "doorbell handshake int failed (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7129
ioc->base_readl_ext_retry(&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
713
ioc_err(ioc, "SAS host is non-operational !!!!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
7132
ioc->base_readl_ext_retry(&ioc->chip->Doorbell)
drivers/scsi/mpt3sas/mpt3sas_base.c
7134
writel(0, &ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
7137
_base_wait_for_doorbell_int(ioc, 5);
drivers/scsi/mpt3sas/mpt3sas_base.c
7138
if (_base_wait_for_doorbell_not_used(ioc, 5) != 0) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7139
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7140
ioc_info(ioc, "doorbell is in use (line=%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7143
writel(0, &ioc->chip->HostInterruptStatus);
drivers/scsi/mpt3sas/mpt3sas_base.c
7145
if (ioc->logging_level & MPT_DEBUG_INIT) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7149
ioc_info(ioc, "\t[0x%02x]:%08x\n", i*4,
drivers/scsi/mpt3sas/mpt3sas_base.c
7155
ret_val = _base_diag_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7174
mpt3sas_base_sas_iounit_control(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7183
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7185
mutex_lock(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
7187
if (ioc->base_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7188
ioc_err(ioc, "%s: base_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7193
rc = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_base.c
7197
smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
7199
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7205
ioc->base_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
7206
request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7207
ioc->base_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
7211
ioc->ioc_link_reset_in_progress = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7212
init_completion(&ioc->base_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
7213
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7214
wait_for_completion_timeout(&ioc->base_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_base.c
7218
ioc->ioc_link_reset_in_progress)
drivers/scsi/mpt3sas/mpt3sas_base.c
7219
ioc->ioc_link_reset_in_progress = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
7220
if (!(ioc->base_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7221
mpt3sas_check_cmd_timeout(ioc, ioc->base_cmds.status,
drivers/scsi/mpt3sas/mpt3sas_base.c
7226
if (ioc->base_cmds.status & MPT3_CMD_REPLY_VALID)
drivers/scsi/mpt3sas/mpt3sas_base.c
7227
memcpy(mpi_reply, ioc->base_cmds.reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
723
if (ioc->non_operational_loop++ < 5) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7231
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
7236
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_base.c
7237
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
724
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock,
drivers/scsi/mpt3sas/mpt3sas_base.c
7240
mutex_unlock(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
7256
mpt3sas_base_scsi_enclosure_processor(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7264
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7266
mutex_lock(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
7268
if (ioc->base_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7269
ioc_err(ioc, "%s: base_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7274
rc = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_base.c
7278
smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
7280
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7286
ioc->base_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
7287
request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7288
ioc->base_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
7289
memset(request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
7291
init_completion(&ioc->base_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
7292
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7293
wait_for_completion_timeout(&ioc->base_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_base.c
7295
if (!(ioc->base_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7296
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7297
ioc->base_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_base.c
7301
if (ioc->base_cmds.status & MPT3_CMD_REPLY_VALID)
drivers/scsi/mpt3sas/mpt3sas_base.c
7302
memcpy(mpi_reply, ioc->base_cmds.reply,
drivers/scsi/mpt3sas/mpt3sas_base.c
7306
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
7311
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_base.c
7312
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
7315
mutex_unlock(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
7327
_base_get_port_facts(struct MPT3SAS_ADAPTER *ioc, int port)
drivers/scsi/mpt3sas/mpt3sas_base.c
7334
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7341
r = _base_handshake_req_reply_wait(ioc, mpi_request_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
7345
ioc_err(ioc, "%s: handshake failed (r=%d)\n", __func__, r);
drivers/scsi/mpt3sas/mpt3sas_base.c
7349
pfacts = &ioc->pfacts[port];
drivers/scsi/mpt3sas/mpt3sas_base.c
736
mpt3sas_base_pause_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7368
_base_wait_for_iocstate(struct MPT3SAS_ADAPTER *ioc, int timeout)
drivers/scsi/mpt3sas/mpt3sas_base.c
737
ioc->schedule_dead_ioc_flush_running_cmds(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7373
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7375
if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7376
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7377
ioc_info(ioc, "%s: host in pci error recovery\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7382
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
7383
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7384
ioc_info(ioc, "%s: ioc_state(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7392
dhsprintk(ioc, ioc_info(ioc, "unexpected doorbell active!\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
7397
mpt3sas_print_fault_code(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_base.c
7402
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7408
ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_READY, timeout);
drivers/scsi/mpt3sas/mpt3sas_base.c
7410
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7411
ioc_info(ioc, "%s: failed going to ready state (ioc_state=0x%x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7419
rc = _base_diag_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
742
ioc->remove_host = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7430
_base_get_ioc_facts(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7437
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7439
r = _base_wait_for_iocstate(ioc, 10);
drivers/scsi/mpt3sas/mpt3sas_base.c
744
p = kthread_run(mpt3sas_remove_dead_ioc_func, ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7441
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7442
ioc_info(ioc, "%s: failed getting to correct state\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
745
"%s_dead_ioc_%d", ioc->driver_name, ioc->id);
drivers/scsi/mpt3sas/mpt3sas_base.c
7450
r = _base_handshake_req_reply_wait(ioc, mpi_request_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
7454
ioc_err(ioc, "%s: handshake failed (r=%d)\n", __func__, r);
drivers/scsi/mpt3sas/mpt3sas_base.c
7458
facts = &ioc->facts;
drivers/scsi/mpt3sas/mpt3sas_base.c
7469
if (ioc->msix_enable && (facts->MaxMSIxVectors <=
drivers/scsi/mpt3sas/mpt3sas_base.c
747
ioc_err(ioc, "%s: Running mpt3sas_dead_ioc thread failed !!!!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7470
MAX_COMBINED_MSIX_VECTORS(ioc->is_gen35_ioc)))
drivers/scsi/mpt3sas/mpt3sas_base.c
7471
ioc->combined_reply_queue = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
7478
ioc->ir_firmware = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7481
ioc->rdpq_array_capable = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7483
&& ioc->is_aero_ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7484
ioc->atomic_desc_capable = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7488
if (ioc->hba_mpi_version_belonged != MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7494
ioc->shost->max_id = -1;
drivers/scsi/mpt3sas/mpt3sas_base.c
750
ioc_err(ioc, "%s: Running mpt3sas_dead_ioc thread success !!!!\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7507
ioc->page_size = 1 << facts->CurrentHostPageSize;
drivers/scsi/mpt3sas/mpt3sas_base.c
7508
if (ioc->page_size == 1) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7509
ioc_info(ioc, "CurrentHostPageSize is 0: Setting default host page size to 4k\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
7510
ioc->page_size = 1 << MPT3SAS_HOST_PAGE_SIZE_4K;
drivers/scsi/mpt3sas/mpt3sas_base.c
7512
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7513
ioc_info(ioc, "CurrentHostPageSize(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7516
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7517
ioc_info(ioc, "hba queue depth(%d), max chains per io(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7519
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7520
ioc_info(ioc, "request frame size(%d), reply frame size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7533
_base_send_ioc_init(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7542
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7549
mpi_request.MsgVersion = cpu_to_le16(ioc->hba_mpi_version_belonged);
drivers/scsi/mpt3sas/mpt3sas_base.c
7553
if (_base_is_controller_msix_enabled(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
7554
mpi_request.HostMSIxVectors = ioc->reply_queue_count;
drivers/scsi/mpt3sas/mpt3sas_base.c
7555
mpi_request.SystemRequestFrameSize = cpu_to_le16(ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_base.c
7557
cpu_to_le16(ioc->reply_post_queue_depth);
drivers/scsi/mpt3sas/mpt3sas_base.c
7559
cpu_to_le16(ioc->reply_free_queue_depth);
drivers/scsi/mpt3sas/mpt3sas_base.c
756
u8 timeout = (ioc->manu_pg11.CoreDumpTOSec) ?
drivers/scsi/mpt3sas/mpt3sas_base.c
7562
cpu_to_le32((u64)ioc->sense_dma >> 32);
drivers/scsi/mpt3sas/mpt3sas_base.c
7564
cpu_to_le32((u64)ioc->reply_dma >> 32);
drivers/scsi/mpt3sas/mpt3sas_base.c
7566
cpu_to_le64((u64)ioc->request_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
7568
cpu_to_le64((u64)ioc->reply_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
757
ioc->manu_pg11.CoreDumpTOSec :
drivers/scsi/mpt3sas/mpt3sas_base.c
7570
if (ioc->rdpq_array_enable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7571
reply_post_free_array_sz = ioc->reply_queue_count *
drivers/scsi/mpt3sas/mpt3sas_base.c
7573
memset(ioc->reply_post_free_array, 0, reply_post_free_array_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
7574
for (i = 0; i < ioc->reply_queue_count; i++)
drivers/scsi/mpt3sas/mpt3sas_base.c
7575
ioc->reply_post_free_array[i].RDPQBaseAddress =
drivers/scsi/mpt3sas/mpt3sas_base.c
7577
(u64)ioc->reply_post[i].reply_post_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
7580
cpu_to_le64((u64)ioc->reply_post_free_array_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
7583
cpu_to_le64((u64)ioc->reply_post[0].reply_post_free_dma);
drivers/scsi/mpt3sas/mpt3sas_base.c
7598
if (ioc->logging_level & MPT_DEBUG_INIT) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7603
ioc_info(ioc, "\toffset:data\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
7605
ioc_info(ioc, "\t[0x%02x]:%08x\n", i*4,
drivers/scsi/mpt3sas/mpt3sas_base.c
7609
r = _base_handshake_req_reply_wait(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7614
ioc_err(ioc, "%s: handshake failed (r=%d)\n", __func__, r);
drivers/scsi/mpt3sas/mpt3sas_base.c
762
if (ioc->ioc_coredump_loop == 0) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7621
ioc_err(ioc, "%s: failed\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7626
ioc->timestamp_update_count = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
763
mpt3sas_print_coredump_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7641
mpt3sas_port_enable_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.c
7647
if (ioc->port_enable_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_base.c
7650
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
7657
ioc->port_enable_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
7658
ioc->port_enable_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_base.c
7659
ioc->port_enable_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_base.c
7660
memcpy(ioc->port_enable_cmds.reply, mpi_reply, mpi_reply->MsgLength*4);
drivers/scsi/mpt3sas/mpt3sas_base.c
7663
ioc->port_enable_failed = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7665
if (ioc->port_enable_cmds.status & MPT3_CMD_COMPLETE_ASYNC) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7666
ioc->port_enable_cmds.status &= ~MPT3_CMD_COMPLETE_ASYNC;
drivers/scsi/mpt3sas/mpt3sas_base.c
7668
mpt3sas_port_enable_complete(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
767
&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
7671
ioc->start_scan_failed = ioc_status;
drivers/scsi/mpt3sas/mpt3sas_base.c
7672
ioc->start_scan = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
7676
complete(&ioc->port_enable_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
768
ioc->shost_recovery = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
7687
_base_send_port_enable(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7695
ioc_info(ioc, "sending port enable !!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
7697
if (ioc->port_enable_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7698
ioc_err(ioc, "%s: internal command already in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
770
&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
7702
smid = mpt3sas_base_get_smid(ioc, ioc->port_enable_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
7704
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7708
ioc->port_enable_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
7709
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
771
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7710
ioc->port_enable_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
7714
init_completion(&ioc->port_enable_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
7715
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7716
wait_for_completion_timeout(&ioc->port_enable_cmds.done, 300*HZ);
drivers/scsi/mpt3sas/mpt3sas_base.c
7717
if (!(ioc->port_enable_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7718
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
772
mpt3sas_base_pause_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7721
if (ioc->port_enable_cmds.status & MPT3_CMD_RESET)
drivers/scsi/mpt3sas/mpt3sas_base.c
7728
mpi_reply = ioc->port_enable_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_base.c
773
_base_clear_outstanding_commands(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7731
ioc_err(ioc, "%s: failed with (ioc_status=0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7738
ioc->port_enable_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
7739
ioc_info(ioc, "port enable: %s\n", r == 0 ? "SUCCESS" : "FAILED");
drivers/scsi/mpt3sas/mpt3sas_base.c
7750
mpt3sas_port_enable(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7755
ioc_info(ioc, "sending port enable !!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
7757
if (ioc->port_enable_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7758
ioc_err(ioc, "%s: internal command already in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
776
ioc_info(ioc, "%s: CoreDump loop %d.",
drivers/scsi/mpt3sas/mpt3sas_base.c
7762
smid = mpt3sas_base_get_smid(ioc, ioc->port_enable_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
7764
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7767
ioc->drv_internal_flags |= MPT_DRV_INTERNAL_FIRST_PE_ISSUED;
drivers/scsi/mpt3sas/mpt3sas_base.c
7768
ioc->port_enable_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
7769
ioc->port_enable_cmds.status |= MPT3_CMD_COMPLETE_ASYNC;
drivers/scsi/mpt3sas/mpt3sas_base.c
777
__func__, ioc->ioc_coredump_loop);
drivers/scsi/mpt3sas/mpt3sas_base.c
7770
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7771
ioc->port_enable_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
7775
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7789
_base_determine_wait_on_discovery(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7797
if (ioc->ir_firmware)
drivers/scsi/mpt3sas/mpt3sas_base.c
780
if (ioc->ioc_coredump_loop++ < timeout) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7801
if (!ioc->bios_pg3.BiosVersion)
drivers/scsi/mpt3sas/mpt3sas_base.c
7811
if ((ioc->bios_pg2.CurrentBootDeviceForm &
drivers/scsi/mpt3sas/mpt3sas_base.c
7815
(ioc->bios_pg2.ReqBootDeviceForm &
drivers/scsi/mpt3sas/mpt3sas_base.c
7819
(ioc->bios_pg2.ReqAltBootDeviceForm &
drivers/scsi/mpt3sas/mpt3sas_base.c
782
&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
7835
_base_unmask_events(struct MPT3SAS_ADAPTER *ioc, u16 event)
drivers/scsi/mpt3sas/mpt3sas_base.c
7845
ioc->event_masks[0] &= ~desired_event;
drivers/scsi/mpt3sas/mpt3sas_base.c
7847
ioc->event_masks[1] &= ~desired_event;
drivers/scsi/mpt3sas/mpt3sas_base.c
7849
ioc->event_masks[2] &= ~desired_event;
drivers/scsi/mpt3sas/mpt3sas_base.c
7851
ioc->event_masks[3] &= ~desired_event;
drivers/scsi/mpt3sas/mpt3sas_base.c
7861
_base_event_notification(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
7868
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
787
if (ioc->ioc_coredump_loop) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7870
if (ioc->base_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7871
ioc_err(ioc, "%s: internal command already in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7875
smid = mpt3sas_base_get_smid(ioc, ioc->base_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.c
7877
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7880
ioc->base_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_base.c
7881
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7882
ioc->base_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
7889
cpu_to_le32(ioc->event_masks[i]);
drivers/scsi/mpt3sas/mpt3sas_base.c
789
ioc_err(ioc, "%s: CoreDump completed. LoopCount: %d",
drivers/scsi/mpt3sas/mpt3sas_base.c
7890
init_completion(&ioc->base_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
7891
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
7892
wait_for_completion_timeout(&ioc->base_cmds.done, 30*HZ);
drivers/scsi/mpt3sas/mpt3sas_base.c
7893
if (!(ioc->base_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7894
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
7897
if (ioc->base_cmds.status & MPT3_CMD_RESET)
drivers/scsi/mpt3sas/mpt3sas_base.c
790
__func__, ioc->ioc_coredump_loop);
drivers/scsi/mpt3sas/mpt3sas_base.c
7903
dinitprintk(ioc, ioc_info(ioc, "%s: complete\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
7904
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
7907
if (ioc->drv_internal_flags & MPT_DRV_INTERNAL_FIRST_PE_ISSUED)
drivers/scsi/mpt3sas/mpt3sas_base.c
7909
if (mpt3sas_base_check_for_fault_and_issue_reset(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
792
ioc_err(ioc, "%s: CoreDump Timed out. LoopCount: %d",
drivers/scsi/mpt3sas/mpt3sas_base.c
7925
mpt3sas_base_validate_event_type(struct MPT3SAS_ADAPTER *ioc, u32 *event_type)
drivers/scsi/mpt3sas/mpt3sas_base.c
793
__func__, ioc->ioc_coredump_loop);
drivers/scsi/mpt3sas/mpt3sas_base.c
7937
(ioc->event_masks[i] & desired_event)) {
drivers/scsi/mpt3sas/mpt3sas_base.c
7938
ioc->event_masks[i] &= ~desired_event;
drivers/scsi/mpt3sas/mpt3sas_base.c
794
ioc->ioc_coredump_loop = MPT3SAS_COREDUMP_LOOP_DONE;
drivers/scsi/mpt3sas/mpt3sas_base.c
7948
mutex_lock(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
7949
_base_event_notification(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
7950
mutex_unlock(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
796
ioc->non_operational_loop = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
7962
mpt3sas_base_unlock_and_get_host_diagnostic(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7974
drsprintk(ioc, ioc_info(ioc, "write magic sequence\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
7975
writel(MPI2_WRSEQ_FLUSH_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
7976
writel(MPI2_WRSEQ_1ST_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
7977
writel(MPI2_WRSEQ_2ND_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
7978
writel(MPI2_WRSEQ_3RD_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
7979
writel(MPI2_WRSEQ_4TH_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
798
rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_base.c
7980
writel(MPI2_WRSEQ_5TH_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
7981
writel(MPI2_WRSEQ_6TH_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
7987
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7989
_base_dump_reg_set(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
799
ioc_warn(ioc, "%s: hard reset: %s\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
7993
*host_diagnostic = ioc->base_readl_ext_retry(&ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_base.c
7994
drsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
7995
ioc_info(ioc, "wrote magic sequence: count(%d), host_diagnostic(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
8008
mpt3sas_base_lock_host_diagnostic(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
801
doorbell = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
8010
drsprintk(ioc, ioc_info(ioc, "disable writes to the diagnostic register\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
8011
writel(MPI2_WRSEQ_FLUSH_KEY_VALUE, &ioc->chip->WriteSequence);
drivers/scsi/mpt3sas/mpt3sas_base.c
8021
_base_diag_reset(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8028
ioc_info(ioc, "sending diag reset !!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
803
mpt3sas_print_fault_code(ioc, doorbell &
drivers/scsi/mpt3sas/mpt3sas_base.c
8030
pci_cfg_access_lock(ioc->pdev);
drivers/scsi/mpt3sas/mpt3sas_base.c
8032
drsprintk(ioc, ioc_info(ioc, "clear interrupts\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
8034
mutex_lock(&ioc->hostdiag_unlock_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8035
if (mpt3sas_base_unlock_and_get_host_diagnostic(ioc, &host_diagnostic))
drivers/scsi/mpt3sas/mpt3sas_base.c
8038
hcb_size = ioc->base_readl(&ioc->chip->HCBSize);
drivers/scsi/mpt3sas/mpt3sas_base.c
8039
drsprintk(ioc, ioc_info(ioc, "diag reset: issued\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
8041
&ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_base.c
8050
host_diagnostic = ioc->base_readl_ext_retry(&ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_base.c
8053
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8055
_base_dump_reg_set(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8067
drsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8068
ioc_info(ioc, "restart the adapter assuming the\n"
drivers/scsi/mpt3sas/mpt3sas_base.c
807
mpt3sas_print_coredump_info(ioc, doorbell &
drivers/scsi/mpt3sas/mpt3sas_base.c
8072
writel(host_diagnostic, &ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_base.c
8074
drsprintk(ioc, ioc_info(ioc, "re-enable the HCDW\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
8076
&ioc->chip->HCBSize);
drivers/scsi/mpt3sas/mpt3sas_base.c
8079
drsprintk(ioc, ioc_info(ioc, "restart the adapter\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
8081
&ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_base.c
8083
mpt3sas_base_lock_host_diagnostic(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8084
mutex_unlock(&ioc->hostdiag_unlock_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8086
drsprintk(ioc, ioc_info(ioc, "Wait for FW to go to the READY state\n"));
drivers/scsi/mpt3sas/mpt3sas_base.c
8087
ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_READY, 20);
drivers/scsi/mpt3sas/mpt3sas_base.c
8089
ioc_err(ioc, "%s: failed going to ready state (ioc_state=0x%x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
8091
_base_dump_reg_set(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8095
pci_cfg_access_unlock(ioc->pdev);
drivers/scsi/mpt3sas/mpt3sas_base.c
8096
ioc_info(ioc, "diag reset: SUCCESS\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
8100
mutex_unlock(&ioc->hostdiag_unlock_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8103
pci_cfg_access_unlock(ioc->pdev);
drivers/scsi/mpt3sas/mpt3sas_base.c
8104
ioc_err(ioc, "diag reset: FAILED\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
8116
mpt3sas_base_make_ioc_ready(struct MPT3SAS_ADAPTER *ioc, enum reset_type type)
drivers/scsi/mpt3sas/mpt3sas_base.c
8122
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8124
if (ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_base.c
8127
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
8128
dhsprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8129
ioc_info(ioc, "%s: ioc_state(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
813
ioc->ioc_coredump_loop = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8138
ioc_err(ioc, "%s: failed going to ready state (ioc_state=0x%x)\n",
drivers/scsi/mpt3sas/mpt3sas_base.c
814
if (ioc->time_sync_interval &&
drivers/scsi/mpt3sas/mpt3sas_base.c
8143
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
815
++ioc->timestamp_update_count >= ioc->time_sync_interval) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8151
ioc_info(ioc, "unexpected doorbell active!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
8156
mpt3sas_print_fault_code(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_base.c
816
ioc->timestamp_update_count = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8169
if (ioc->ioc_coredump_loop != MPT3SAS_COREDUMP_LOOP_DONE) {
drivers/scsi/mpt3sas/mpt3sas_base.c
817
_base_sync_drv_fw_timestamp(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8170
mpt3sas_print_coredump_info(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_base.c
8172
mpt3sas_base_wait_for_coredump_completion(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8182
if (!(_base_send_ioc_reset(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8188
rc = _base_diag_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
819
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8199
_base_make_ioc_operational(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
821
if (ioc->fault_reset_work_q)
drivers/scsi/mpt3sas/mpt3sas_base.c
8212
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8216
&ioc->delayed_tr_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
822
queue_delayed_work(ioc->fault_reset_work_q,
drivers/scsi/mpt3sas/mpt3sas_base.c
8223
&ioc->delayed_tr_volume_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8229
&ioc->delayed_sc_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
823
&ioc->fault_reset_work,
drivers/scsi/mpt3sas/mpt3sas_base.c
8235
&ioc->delayed_event_ack_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8240
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8243
INIT_LIST_HEAD(&ioc->hpr_free_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
8244
smid = ioc->hi_priority_smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
8245
for (i = 0; i < ioc->hi_priority_depth; i++, smid++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8246
ioc->hpr_lookup[i].cb_idx = 0xFF;
drivers/scsi/mpt3sas/mpt3sas_base.c
8247
ioc->hpr_lookup[i].smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
8248
list_add_tail(&ioc->hpr_lookup[i].tracker_list,
drivers/scsi/mpt3sas/mpt3sas_base.c
8249
&ioc->hpr_free_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
825
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8253
INIT_LIST_HEAD(&ioc->internal_free_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
8254
smid = ioc->internal_smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
8255
for (i = 0; i < ioc->internal_depth; i++, smid++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8256
ioc->internal_lookup[i].cb_idx = 0xFF;
drivers/scsi/mpt3sas/mpt3sas_base.c
8257
ioc->internal_lookup[i].smid = smid;
drivers/scsi/mpt3sas/mpt3sas_base.c
8258
list_add_tail(&ioc->internal_lookup[i].tracker_list,
drivers/scsi/mpt3sas/mpt3sas_base.c
8259
&ioc->internal_free_list);
drivers/scsi/mpt3sas/mpt3sas_base.c
8262
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8265
for (i = 0, reply_address = (u32)ioc->reply_dma ;
drivers/scsi/mpt3sas/mpt3sas_base.c
8266
i < ioc->reply_free_queue_depth ; i++, reply_address +=
drivers/scsi/mpt3sas/mpt3sas_base.c
8267
ioc->reply_sz) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8268
ioc->reply_free[i] = cpu_to_le32(reply_address);
drivers/scsi/mpt3sas/mpt3sas_base.c
8269
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
8270
_base_clone_reply_to_sys_mem(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8275
if (ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_base.c
8276
_base_assign_reply_queues(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8280
reply_post_free_contig = ioc->reply_post[0].reply_post_free;
drivers/scsi/mpt3sas/mpt3sas_base.c
8281
list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8286
if (ioc->rdpq_array_enable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8288
ioc->reply_post[index++].reply_post_free;
drivers/scsi/mpt3sas/mpt3sas_base.c
8291
reply_post_free_contig += ioc->reply_post_queue_depth;
drivers/scsi/mpt3sas/mpt3sas_base.c
8295
for (i = 0; i < ioc->reply_post_queue_depth; i++)
drivers/scsi/mpt3sas/mpt3sas_base.c
8298
if (!_base_is_controller_msix_enabled(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
8303
r = _base_send_ioc_init(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8310
if (!ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_base.c
8313
rc = mpt3sas_base_check_for_fault_and_issue_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8314
if (rc || (_base_send_ioc_init(ioc)))
drivers/scsi/mpt3sas/mpt3sas_base.c
8319
ioc->reply_free_host_index = ioc->reply_free_queue_depth - 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8320
writel(ioc->reply_free_host_index, &ioc->chip->ReplyFreeHostIndex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8323
list_for_each_entry(reply_q, &ioc->reply_queue_list, list) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8324
if (ioc->combined_reply_queue)
drivers/scsi/mpt3sas/mpt3sas_base.c
8327
ioc->replyPostRegisterIndex[reply_q->msix_index/8]);
drivers/scsi/mpt3sas/mpt3sas_base.c
8331
&ioc->chip->ReplyPostHostIndex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8333
if (!_base_is_controller_msix_enabled(ioc))
drivers/scsi/mpt3sas/mpt3sas_base.c
8339
mpt3sas_base_unmask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8341
if (ioc->hba_mpi_version_belonged != MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8342
r = _base_display_fwpkg_version(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8347
r = _base_static_config_pages(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
835
mpt3sas_base_start_watchdog(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8351
r = _base_event_notification(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8355
if (!ioc->shost_recovery) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8357
if (ioc->is_warpdrive && ioc->manu_pg10.OEMIdentifier
drivers/scsi/mpt3sas/mpt3sas_base.c
8360
le32_to_cpu(ioc->manu_pg10.OEMSpecificFlags0) &
drivers/scsi/mpt3sas/mpt3sas_base.c
8363
ioc->mfg_pg10_hide_flag = hide_flag;
drivers/scsi/mpt3sas/mpt3sas_base.c
8366
ioc->wait_for_discovery_to_complete =
drivers/scsi/mpt3sas/mpt3sas_base.c
8367
_base_determine_wait_on_discovery(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8372
r = _base_send_port_enable(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8384
mpt3sas_base_free_resources(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8386
dexitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8389
mutex_lock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
839
if (ioc->fault_reset_work_q)
drivers/scsi/mpt3sas/mpt3sas_base.c
8390
if (ioc->chip_phys && ioc->chip) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8391
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8392
ioc->shost_recovery = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8393
mpt3sas_base_make_ioc_ready(ioc, SOFT_RESET);
drivers/scsi/mpt3sas/mpt3sas_base.c
8394
ioc->shost_recovery = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8397
mpt3sas_base_unmap_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8398
mutex_unlock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8409
mpt3sas_base_attach(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8414
dinitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8417
ioc->cpu_count = num_online_cpus();
drivers/scsi/mpt3sas/mpt3sas_base.c
842
ioc->timestamp_update_count = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8420
ioc->cpu_msix_table_sz = last_cpu_id + 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8421
ioc->cpu_msix_table = kzalloc(ioc->cpu_msix_table_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8422
ioc->reply_queue_count = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8423
if (!ioc->cpu_msix_table) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8424
ioc_info(ioc, "Allocation for cpu_msix_table failed!!!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
8429
if (ioc->is_warpdrive) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8430
ioc->reply_post_host_index = kzalloc_objs(resource_size_t *,
drivers/scsi/mpt3sas/mpt3sas_base.c
8431
ioc->cpu_msix_table_sz);
drivers/scsi/mpt3sas/mpt3sas_base.c
8432
if (!ioc->reply_post_host_index) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8433
ioc_info(ioc, "Allocation for reply_post_host_index failed!!!\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
8439
ioc->smp_affinity_enable = smp_affinity_enable;
drivers/scsi/mpt3sas/mpt3sas_base.c
8441
ioc->rdpq_array_enable_assigned = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8442
ioc->use_32bit_dma = false;
drivers/scsi/mpt3sas/mpt3sas_base.c
8443
ioc->dma_mask = 64;
drivers/scsi/mpt3sas/mpt3sas_base.c
8444
if (ioc->is_aero_ioc) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8445
ioc->base_readl = &_base_readl_aero;
drivers/scsi/mpt3sas/mpt3sas_base.c
8446
ioc->base_readl_ext_retry = &_base_readl_ext_retry;
drivers/scsi/mpt3sas/mpt3sas_base.c
8448
ioc->base_readl = &_base_readl;
drivers/scsi/mpt3sas/mpt3sas_base.c
8449
ioc->base_readl_ext_retry = &_base_readl;
drivers/scsi/mpt3sas/mpt3sas_base.c
845
INIT_DELAYED_WORK(&ioc->fault_reset_work, _base_fault_reset_work);
drivers/scsi/mpt3sas/mpt3sas_base.c
8451
r = mpt3sas_base_map_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8455
pci_set_drvdata(ioc->pdev, ioc->shost);
drivers/scsi/mpt3sas/mpt3sas_base.c
8456
r = _base_get_ioc_facts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8458
rc = mpt3sas_base_check_for_fault_and_issue_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8459
if (rc || (_base_get_ioc_facts(ioc)))
drivers/scsi/mpt3sas/mpt3sas_base.c
846
ioc->fault_reset_work_q = alloc_ordered_workqueue(
drivers/scsi/mpt3sas/mpt3sas_base.c
8463
switch (ioc->hba_mpi_version_belonged) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8465
ioc->build_sg_scmd = &_base_build_sg_scmd;
drivers/scsi/mpt3sas/mpt3sas_base.c
8466
ioc->build_sg = &_base_build_sg;
drivers/scsi/mpt3sas/mpt3sas_base.c
8467
ioc->build_zero_len_sge = &_base_build_zero_len_sge;
drivers/scsi/mpt3sas/mpt3sas_base.c
8468
ioc->get_msix_index_for_smlio = &_base_get_msix_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
847
"poll_%s%d_status", WQ_MEM_RECLAIM, ioc->driver_name, ioc->id);
drivers/scsi/mpt3sas/mpt3sas_base.c
8478
ioc->build_sg_scmd = &_base_build_sg_scmd_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
8479
ioc->build_sg = &_base_build_sg_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
848
if (!ioc->fault_reset_work_q) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8480
ioc->build_nvme_prp = &_base_build_nvme_prp;
drivers/scsi/mpt3sas/mpt3sas_base.c
8481
ioc->build_zero_len_sge = &_base_build_zero_len_sge_ieee;
drivers/scsi/mpt3sas/mpt3sas_base.c
8482
ioc->sge_size_ieee = sizeof(Mpi2IeeeSgeSimple64_t);
drivers/scsi/mpt3sas/mpt3sas_base.c
8483
if (ioc->high_iops_queues)
drivers/scsi/mpt3sas/mpt3sas_base.c
8484
ioc->get_msix_index_for_smlio =
drivers/scsi/mpt3sas/mpt3sas_base.c
8487
ioc->get_msix_index_for_smlio = &_base_get_msix_index;
drivers/scsi/mpt3sas/mpt3sas_base.c
849
ioc_err(ioc, "%s: failed (line=%d)\n", __func__, __LINE__);
drivers/scsi/mpt3sas/mpt3sas_base.c
8490
if (ioc->atomic_desc_capable) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8491
ioc->put_smid_default = &_base_put_smid_default_atomic;
drivers/scsi/mpt3sas/mpt3sas_base.c
8492
ioc->put_smid_scsi_io = &_base_put_smid_scsi_io_atomic;
drivers/scsi/mpt3sas/mpt3sas_base.c
8493
ioc->put_smid_fast_path =
drivers/scsi/mpt3sas/mpt3sas_base.c
8495
ioc->put_smid_hi_priority =
drivers/scsi/mpt3sas/mpt3sas_base.c
8498
ioc->put_smid_default = &_base_put_smid_default;
drivers/scsi/mpt3sas/mpt3sas_base.c
8499
ioc->put_smid_fast_path = &_base_put_smid_fast_path;
drivers/scsi/mpt3sas/mpt3sas_base.c
8500
ioc->put_smid_hi_priority = &_base_put_smid_hi_priority;
drivers/scsi/mpt3sas/mpt3sas_base.c
8501
if (ioc->is_mcpu_endpoint)
drivers/scsi/mpt3sas/mpt3sas_base.c
8502
ioc->put_smid_scsi_io =
drivers/scsi/mpt3sas/mpt3sas_base.c
8505
ioc->put_smid_scsi_io = &_base_put_smid_scsi_io;
drivers/scsi/mpt3sas/mpt3sas_base.c
8513
ioc->build_sg_mpi = &_base_build_sg;
drivers/scsi/mpt3sas/mpt3sas_base.c
8514
ioc->build_zero_len_sge_mpi = &_base_build_zero_len_sge;
drivers/scsi/mpt3sas/mpt3sas_base.c
8516
r = mpt3sas_base_make_ioc_ready(ioc, SOFT_RESET);
drivers/scsi/mpt3sas/mpt3sas_base.c
852
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8520
ioc->pfacts = kzalloc_objs(struct mpt3sas_port_facts,
drivers/scsi/mpt3sas/mpt3sas_base.c
8521
ioc->facts.NumberOfPorts);
drivers/scsi/mpt3sas/mpt3sas_base.c
8522
if (!ioc->pfacts) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8527
for (i = 0 ; i < ioc->facts.NumberOfPorts; i++) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8528
r = _base_get_port_facts(ioc, i);
drivers/scsi/mpt3sas/mpt3sas_base.c
853
if (ioc->fault_reset_work_q)
drivers/scsi/mpt3sas/mpt3sas_base.c
8530
rc = mpt3sas_base_check_for_fault_and_issue_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8531
if (rc || (_base_get_port_facts(ioc, i)))
drivers/scsi/mpt3sas/mpt3sas_base.c
8536
r = _base_allocate_memory_pools(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
854
queue_delayed_work(ioc->fault_reset_work_q,
drivers/scsi/mpt3sas/mpt3sas_base.c
8541
ioc->thresh_hold = irqpoll_weight;
drivers/scsi/mpt3sas/mpt3sas_base.c
8543
ioc->thresh_hold = ioc->hba_queue_depth/4;
drivers/scsi/mpt3sas/mpt3sas_base.c
8545
_base_init_irqpolls(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8546
init_waitqueue_head(&ioc->reset_wq);
drivers/scsi/mpt3sas/mpt3sas_base.c
8549
ioc->pd_handles_sz = (ioc->facts.MaxDevHandle / 8);
drivers/scsi/mpt3sas/mpt3sas_base.c
855
&ioc->fault_reset_work,
drivers/scsi/mpt3sas/mpt3sas_base.c
8550
if (ioc->facts.MaxDevHandle % 8)
drivers/scsi/mpt3sas/mpt3sas_base.c
8551
ioc->pd_handles_sz++;
drivers/scsi/mpt3sas/mpt3sas_base.c
8556
ioc->pd_handles_sz = ALIGN(ioc->pd_handles_sz, sizeof(unsigned long));
drivers/scsi/mpt3sas/mpt3sas_base.c
8558
ioc->pd_handles = kzalloc(ioc->pd_handles_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
8560
if (!ioc->pd_handles) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8564
ioc->blocking_handles = kzalloc(ioc->pd_handles_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
8566
if (!ioc->blocking_handles) {
drivers/scsi/mpt3sas/mpt3sas_base.c
857
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8572
ioc->pend_os_device_add_sz = (ioc->facts.MaxDevHandle / 8);
drivers/scsi/mpt3sas/mpt3sas_base.c
8573
if (ioc->facts.MaxDevHandle % 8)
drivers/scsi/mpt3sas/mpt3sas_base.c
8574
ioc->pend_os_device_add_sz++;
drivers/scsi/mpt3sas/mpt3sas_base.c
8580
ioc->pend_os_device_add_sz = ALIGN(ioc->pend_os_device_add_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
8582
ioc->pend_os_device_add = kzalloc(ioc->pend_os_device_add_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
8584
if (!ioc->pend_os_device_add) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8589
ioc->device_remove_in_progress_sz = ioc->pend_os_device_add_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
8590
ioc->device_remove_in_progress =
drivers/scsi/mpt3sas/mpt3sas_base.c
8591
kzalloc(ioc->device_remove_in_progress_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8592
if (!ioc->device_remove_in_progress) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8597
ioc->fwfault_debug = mpt3sas_fwfault_debug;
drivers/scsi/mpt3sas/mpt3sas_base.c
8600
mutex_init(&ioc->base_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8601
ioc->base_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8602
ioc->base_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8605
ioc->port_enable_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8606
ioc->port_enable_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8609
ioc->transport_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8610
ioc->transport_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8611
mutex_init(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8614
ioc->scsih_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8615
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8616
mutex_init(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8619
ioc->tm_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8620
ioc->tm_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8621
mutex_init(&ioc->tm_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8624
ioc->config_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8625
ioc->config_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8626
mutex_init(&ioc->config_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8629
ioc->ctl_cmds.reply = kzalloc(ioc->reply_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8630
ioc->ctl_cmds.sense = kzalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8631
ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_base.c
8632
mutex_init(&ioc->ctl_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8634
if (!ioc->base_cmds.reply || !ioc->port_enable_cmds.reply ||
drivers/scsi/mpt3sas/mpt3sas_base.c
8635
!ioc->transport_cmds.reply || !ioc->scsih_cmds.reply ||
drivers/scsi/mpt3sas/mpt3sas_base.c
8636
!ioc->tm_cmds.reply || !ioc->config_cmds.reply ||
drivers/scsi/mpt3sas/mpt3sas_base.c
8637
!ioc->ctl_cmds.reply || !ioc->ctl_cmds.sense) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8643
ioc->event_masks[i] = -1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8646
_base_unmask_events(ioc, MPI2_EVENT_SAS_DISCOVERY);
drivers/scsi/mpt3sas/mpt3sas_base.c
8647
_base_unmask_events(ioc, MPI2_EVENT_SAS_BROADCAST_PRIMITIVE);
drivers/scsi/mpt3sas/mpt3sas_base.c
8648
_base_unmask_events(ioc, MPI2_EVENT_SAS_TOPOLOGY_CHANGE_LIST);
drivers/scsi/mpt3sas/mpt3sas_base.c
8649
_base_unmask_events(ioc, MPI2_EVENT_SAS_DEVICE_STATUS_CHANGE);
drivers/scsi/mpt3sas/mpt3sas_base.c
8650
_base_unmask_events(ioc, MPI2_EVENT_SAS_ENCL_DEVICE_STATUS_CHANGE);
drivers/scsi/mpt3sas/mpt3sas_base.c
8651
_base_unmask_events(ioc, MPI2_EVENT_IR_CONFIGURATION_CHANGE_LIST);
drivers/scsi/mpt3sas/mpt3sas_base.c
8652
_base_unmask_events(ioc, MPI2_EVENT_IR_VOLUME);
drivers/scsi/mpt3sas/mpt3sas_base.c
8653
_base_unmask_events(ioc, MPI2_EVENT_IR_PHYSICAL_DISK);
drivers/scsi/mpt3sas/mpt3sas_base.c
8654
_base_unmask_events(ioc, MPI2_EVENT_IR_OPERATION_STATUS);
drivers/scsi/mpt3sas/mpt3sas_base.c
8655
_base_unmask_events(ioc, MPI2_EVENT_LOG_ENTRY_ADDED);
drivers/scsi/mpt3sas/mpt3sas_base.c
8656
_base_unmask_events(ioc, MPI2_EVENT_TEMP_THRESHOLD);
drivers/scsi/mpt3sas/mpt3sas_base.c
8657
_base_unmask_events(ioc, MPI2_EVENT_ACTIVE_CABLE_EXCEPTION);
drivers/scsi/mpt3sas/mpt3sas_base.c
8658
_base_unmask_events(ioc, MPI2_EVENT_SAS_DEVICE_DISCOVERY_ERROR);
drivers/scsi/mpt3sas/mpt3sas_base.c
8659
if (ioc->hba_mpi_version_belonged == MPI26_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8660
if (ioc->is_gen35_ioc) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8661
_base_unmask_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8663
_base_unmask_events(ioc, MPI2_EVENT_PCIE_ENUMERATION);
drivers/scsi/mpt3sas/mpt3sas_base.c
8664
_base_unmask_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8668
r = _base_make_ioc_operational(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
867
mpt3sas_base_stop_watchdog(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8670
r = _base_make_ioc_operational(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8679
memcpy(&ioc->prev_fw_facts, &ioc->facts,
drivers/scsi/mpt3sas/mpt3sas_base.c
8682
ioc->non_operational_loop = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8683
ioc->ioc_coredump_loop = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8684
ioc->got_task_abort_from_ioctl = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8689
ioc->remove_host = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8691
mpt3sas_base_free_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8692
_base_release_memory_pools(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8693
pci_set_drvdata(ioc->pdev, NULL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8694
kfree(ioc->cpu_msix_table);
drivers/scsi/mpt3sas/mpt3sas_base.c
8695
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_base.c
8696
kfree(ioc->reply_post_host_index);
drivers/scsi/mpt3sas/mpt3sas_base.c
8697
kfree(ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_base.c
8698
kfree(ioc->blocking_handles);
drivers/scsi/mpt3sas/mpt3sas_base.c
8699
kfree(ioc->device_remove_in_progress);
drivers/scsi/mpt3sas/mpt3sas_base.c
8700
kfree(ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_base.c
8701
kfree(ioc->tm_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8702
kfree(ioc->transport_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8703
kfree(ioc->scsih_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8704
kfree(ioc->config_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8705
kfree(ioc->base_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8706
kfree(ioc->port_enable_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8707
kfree(ioc->ctl_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8708
kfree(ioc->ctl_cmds.sense);
drivers/scsi/mpt3sas/mpt3sas_base.c
8709
kfree(ioc->pfacts);
drivers/scsi/mpt3sas/mpt3sas_base.c
8710
ioc->ctl_cmds.reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8711
ioc->base_cmds.reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8712
ioc->tm_cmds.reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8713
ioc->scsih_cmds.reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8714
ioc->transport_cmds.reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8715
ioc->config_cmds.reply = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8716
ioc->pfacts = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
872
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8726
mpt3sas_base_detach(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8728
dexitprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
873
wq = ioc->fault_reset_work_q;
drivers/scsi/mpt3sas/mpt3sas_base.c
8730
mpt3sas_base_stop_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8731
mpt3sas_base_free_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8732
_base_release_memory_pools(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8733
mpt3sas_free_enclosure_list(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8734
pci_set_drvdata(ioc->pdev, NULL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8735
kfree(ioc->cpu_msix_table);
drivers/scsi/mpt3sas/mpt3sas_base.c
8736
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_base.c
8737
kfree(ioc->reply_post_host_index);
drivers/scsi/mpt3sas/mpt3sas_base.c
8738
kfree(ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_base.c
8739
kfree(ioc->blocking_handles);
drivers/scsi/mpt3sas/mpt3sas_base.c
874
ioc->fault_reset_work_q = NULL;
drivers/scsi/mpt3sas/mpt3sas_base.c
8740
kfree(ioc->device_remove_in_progress);
drivers/scsi/mpt3sas/mpt3sas_base.c
8741
kfree(ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_base.c
8742
kfree(ioc->pfacts);
drivers/scsi/mpt3sas/mpt3sas_base.c
8743
kfree(ioc->ctl_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8744
kfree(ioc->ctl_cmds.sense);
drivers/scsi/mpt3sas/mpt3sas_base.c
8745
kfree(ioc->base_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8746
kfree(ioc->port_enable_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8747
kfree(ioc->tm_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8748
kfree(ioc->transport_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8749
kfree(ioc->scsih_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
875
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8750
kfree(ioc->config_cmds.reply);
drivers/scsi/mpt3sas/mpt3sas_base.c
8757
static void _base_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8759
mpt3sas_scsih_pre_reset_handler(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8760
mpt3sas_ctl_pre_reset_handler(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8761
dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_PRE_RESET\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8769
_base_clear_outstanding_mpt_commands(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
877
if (!cancel_delayed_work_sync(&ioc->fault_reset_work))
drivers/scsi/mpt3sas/mpt3sas_base.c
8771
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8772
ioc_info(ioc, "%s: clear outstanding mpt cmds\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8773
if (ioc->transport_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8774
ioc->transport_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_base.c
8775
mpt3sas_base_free_smid(ioc, ioc->transport_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
8776
complete(&ioc->transport_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
8778
if (ioc->base_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8779
ioc->base_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_base.c
8780
mpt3sas_base_free_smid(ioc, ioc->base_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
8781
complete(&ioc->base_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
8783
if (ioc->port_enable_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8784
ioc->port_enable_failed = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8785
ioc->port_enable_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_base.c
8786
mpt3sas_base_free_smid(ioc, ioc->port_enable_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
8787
if (ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8788
ioc->start_scan_failed =
drivers/scsi/mpt3sas/mpt3sas_base.c
8790
ioc->start_scan = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8792
complete(&ioc->port_enable_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
8795
if (ioc->config_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8796
ioc->config_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_base.c
8797
mpt3sas_base_free_smid(ioc, ioc->config_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_base.c
8798
ioc->config_cmds.smid = USHRT_MAX;
drivers/scsi/mpt3sas/mpt3sas_base.c
8799
complete(&ioc->config_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_base.c
8807
static void _base_clear_outstanding_commands(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8809
mpt3sas_scsih_clear_outstanding_scsi_tm_commands(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8810
mpt3sas_ctl_clear_outstanding_ioctls(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8811
_base_clear_outstanding_mpt_commands(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8818
static void _base_reset_done_handler(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8820
mpt3sas_scsih_reset_done_handler(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8821
mpt3sas_ctl_reset_done_handler(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8822
dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_DONE_RESET\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8833
mpt3sas_wait_for_commands_to_complete(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8837
ioc->pending_io_count = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
8839
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
8844
ioc->pending_io_count = scsi_host_busy(ioc->shost);
drivers/scsi/mpt3sas/mpt3sas_base.c
8846
if (!ioc->pending_io_count)
drivers/scsi/mpt3sas/mpt3sas_base.c
8850
wait_event_timeout(ioc->reset_wq, ioc->pending_io_count == 0, 10 * HZ);
drivers/scsi/mpt3sas/mpt3sas_base.c
8861
_base_check_ioc_facts_changes(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
8866
struct mpt3sas_facts *old_facts = &ioc->prev_fw_facts;
drivers/scsi/mpt3sas/mpt3sas_base.c
8868
if (ioc->facts.MaxDevHandle > old_facts->MaxDevHandle) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8869
pd_handles_sz = (ioc->facts.MaxDevHandle / 8);
drivers/scsi/mpt3sas/mpt3sas_base.c
8870
if (ioc->facts.MaxDevHandle % 8)
drivers/scsi/mpt3sas/mpt3sas_base.c
8879
pd_handles = krealloc(ioc->pd_handles, pd_handles_sz,
drivers/scsi/mpt3sas/mpt3sas_base.c
8882
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8887
memset(pd_handles + ioc->pd_handles_sz, 0,
drivers/scsi/mpt3sas/mpt3sas_base.c
8888
(pd_handles_sz - ioc->pd_handles_sz));
drivers/scsi/mpt3sas/mpt3sas_base.c
8889
ioc->pd_handles = pd_handles;
drivers/scsi/mpt3sas/mpt3sas_base.c
889
mpt3sas_base_fault_info(struct MPT3SAS_ADAPTER *ioc, u16 fault_code)
drivers/scsi/mpt3sas/mpt3sas_base.c
8891
blocking_handles = krealloc(ioc->blocking_handles,
drivers/scsi/mpt3sas/mpt3sas_base.c
8894
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8900
memset(blocking_handles + ioc->pd_handles_sz, 0,
drivers/scsi/mpt3sas/mpt3sas_base.c
8901
(pd_handles_sz - ioc->pd_handles_sz));
drivers/scsi/mpt3sas/mpt3sas_base.c
8902
ioc->blocking_handles = blocking_handles;
drivers/scsi/mpt3sas/mpt3sas_base.c
8903
ioc->pd_handles_sz = pd_handles_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
8905
pend_os_device_add = krealloc(ioc->pend_os_device_add,
drivers/scsi/mpt3sas/mpt3sas_base.c
8908
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
891
ioc_err(ioc, "fault_state(0x%04x)!\n", fault_code);
drivers/scsi/mpt3sas/mpt3sas_base.c
8913
memset(pend_os_device_add + ioc->pend_os_device_add_sz, 0,
drivers/scsi/mpt3sas/mpt3sas_base.c
8914
(pd_handles_sz - ioc->pend_os_device_add_sz));
drivers/scsi/mpt3sas/mpt3sas_base.c
8915
ioc->pend_os_device_add = pend_os_device_add;
drivers/scsi/mpt3sas/mpt3sas_base.c
8916
ioc->pend_os_device_add_sz = pd_handles_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
8919
ioc->device_remove_in_progress, pd_handles_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_base.c
8921
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8927
ioc->device_remove_in_progress_sz, 0,
drivers/scsi/mpt3sas/mpt3sas_base.c
8928
(pd_handles_sz - ioc->device_remove_in_progress_sz));
drivers/scsi/mpt3sas/mpt3sas_base.c
8929
ioc->device_remove_in_progress = device_remove_in_progress;
drivers/scsi/mpt3sas/mpt3sas_base.c
8930
ioc->device_remove_in_progress_sz = pd_handles_sz;
drivers/scsi/mpt3sas/mpt3sas_base.c
8933
memcpy(&ioc->prev_fw_facts, &ioc->facts, sizeof(struct mpt3sas_facts));
drivers/scsi/mpt3sas/mpt3sas_base.c
8945
mpt3sas_base_hard_reset_handler(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
8953
dtmprintk(ioc, ioc_info(ioc, "%s: enter\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
8955
if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8956
ioc_err(ioc, "%s: pci error recovery reset\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_base.c
8962
mpt3sas_halt_firmware(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8965
mutex_lock(&ioc->reset_in_progress_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
8967
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8968
ioc->shost_recovery = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
8969
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
8971
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_base.c
8973
(!(ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_base.c
8976
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_base.c
8981
ioc->htb_rel.trigger_info_dwords[1] =
drivers/scsi/mpt3sas/mpt3sas_base.c
8985
_base_pre_reset_handler(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8986
mpt3sas_wait_for_commands_to_complete(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8987
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8988
mpt3sas_base_pause_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8989
r = mpt3sas_base_make_ioc_ready(ioc, type);
drivers/scsi/mpt3sas/mpt3sas_base.c
8992
_base_clear_outstanding_commands(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
8997
if (ioc->is_driver_loading && ioc->port_enable_failed) {
drivers/scsi/mpt3sas/mpt3sas_base.c
8998
ioc->remove_host = 1;
drivers/scsi/mpt3sas/mpt3sas_base.c
9002
r = _base_get_ioc_facts(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
9006
r = _base_check_ioc_facts_changes(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
9008
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
9013
if (ioc->rdpq_array_enable && !ioc->rdpq_array_capable)
drivers/scsi/mpt3sas/mpt3sas_base.c
9016
" firmware version is running\n", ioc->name);
drivers/scsi/mpt3sas/mpt3sas_base.c
9018
r = _base_make_ioc_operational(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
902
mpt3sas_base_coredump_info(struct MPT3SAS_ADAPTER *ioc, u16 fault_code)
drivers/scsi/mpt3sas/mpt3sas_base.c
9020
_base_reset_done_handler(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
9023
ioc_info(ioc, "%s: %s\n", __func__, r == 0 ? "SUCCESS" : "FAILED");
drivers/scsi/mpt3sas/mpt3sas_base.c
9025
spin_lock_irqsave(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
9026
ioc->shost_recovery = 0;
drivers/scsi/mpt3sas/mpt3sas_base.c
9027
spin_unlock_irqrestore(&ioc->ioc_reset_in_progress_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_base.c
9028
ioc->ioc_reset_count++;
drivers/scsi/mpt3sas/mpt3sas_base.c
9029
mutex_unlock(&ioc->reset_in_progress_mutex);
drivers/scsi/mpt3sas/mpt3sas_base.c
9030
mpt3sas_base_resume_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_base.c
9035
mpt3sas_trigger_master(ioc, MASTER_TRIGGER_FW_FAULT);
drivers/scsi/mpt3sas/mpt3sas_base.c
9037
mpt3sas_trigger_master(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
904
ioc_err(ioc, "coredump_state(0x%04x)!\n", fault_code);
drivers/scsi/mpt3sas/mpt3sas_base.c
9040
dtmprintk(ioc, ioc_info(ioc, "%s: exit\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_base.c
916
mpt3sas_base_wait_for_coredump_completion(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
919
u8 timeout = (ioc->manu_pg11.CoreDumpTOSec) ?
drivers/scsi/mpt3sas/mpt3sas_base.c
920
ioc->manu_pg11.CoreDumpTOSec :
drivers/scsi/mpt3sas/mpt3sas_base.c
923
int ioc_state = _base_wait_on_iocstate(ioc, MPI2_IOC_STATE_FAULT,
drivers/scsi/mpt3sas/mpt3sas_base.c
927
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
931
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_base.c
948
mpt3sas_halt_firmware(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_base.c
952
if (!ioc->fwfault_debug)
drivers/scsi/mpt3sas/mpt3sas_base.c
957
doorbell = ioc->base_readl_ext_retry(&ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
959
mpt3sas_print_fault_code(ioc, doorbell &
drivers/scsi/mpt3sas/mpt3sas_base.c
963
mpt3sas_print_coredump_info(ioc, doorbell &
drivers/scsi/mpt3sas/mpt3sas_base.c
966
writel(0xC0FFEE00, &ioc->chip->Doorbell);
drivers/scsi/mpt3sas/mpt3sas_base.c
967
ioc_err(ioc, "Firmware is halted due to command timeout\n");
drivers/scsi/mpt3sas/mpt3sas_base.c
970
if (ioc->fwfault_debug == 2)
drivers/scsi/mpt3sas/mpt3sas_base.c
984
_base_sas_ioc_info(struct MPT3SAS_ADAPTER *ioc, MPI2DefaultReply_t *mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_base.h
1000
typedef void (*PUT_SMID_DEFAULT) (struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1006
typedef u8 (*GET_MSIX_INDEX) (struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1146
typedef void (*MPT3SAS_FLUSH_RUNNING_CMDS)(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1652
typedef u8 (*MPT_CALLBACK)(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.h
1697
void mpt3sas_base_start_watchdog(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1698
void mpt3sas_base_stop_watchdog(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1700
int mpt3sas_base_attach(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1701
void mpt3sas_base_detach(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1702
int mpt3sas_base_map_resources(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1703
void mpt3sas_base_free_resources(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1704
void mpt3sas_free_enclosure_list(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1705
int mpt3sas_base_hard_reset_handler(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1708
void *mpt3sas_base_get_msg_frame(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1709
void *mpt3sas_base_get_sense_buffer(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1710
__le32 mpt3sas_base_get_sense_buffer_dma(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1712
void *mpt3sas_base_get_pcie_sgl(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1713
dma_addr_t mpt3sas_base_get_pcie_sgl_dma(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1714
void mpt3sas_base_sync_reply_irqs(struct MPT3SAS_ADAPTER *ioc, u8 poll);
drivers/scsi/mpt3sas/mpt3sas_base.h
1715
void mpt3sas_base_mask_interrupts(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1716
void mpt3sas_base_unmask_interrupts(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1718
void mpt3sas_base_put_smid_fast_path(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.h
1720
void mpt3sas_base_put_smid_hi_priority(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.h
1722
void mpt3sas_base_put_smid_nvme_encap(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1723
void mpt3sas_base_put_smid_default(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1725
u16 mpt3sas_base_get_smid_hpr(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.h
1726
u16 mpt3sas_base_get_smid_scsiio(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx,
drivers/scsi/mpt3sas/mpt3sas_base.h
1728
void mpt3sas_base_clear_st(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1731
u16 mpt3sas_base_get_smid(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx);
drivers/scsi/mpt3sas/mpt3sas_base.h
1732
void mpt3sas_base_free_smid(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_base.h
1737
u8 mpt3sas_base_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.h
1739
u8 mpt3sas_port_enable_done(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.h
1741
void *mpt3sas_base_get_reply_virt_addr(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1744
u32 mpt3sas_base_get_iocstate(struct MPT3SAS_ADAPTER *ioc, int cooked);
drivers/scsi/mpt3sas/mpt3sas_base.h
1746
void mpt3sas_base_fault_info(struct MPT3SAS_ADAPTER *ioc , u16 fault_code);
drivers/scsi/mpt3sas/mpt3sas_base.h
1747
#define mpt3sas_print_fault_code(ioc, fault_code) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1748
do { pr_err("%s fault info from func: %s\n", ioc->name, __func__); \
drivers/scsi/mpt3sas/mpt3sas_base.h
1749
mpt3sas_base_fault_info(ioc, fault_code); } while (0)
drivers/scsi/mpt3sas/mpt3sas_base.h
1751
void mpt3sas_base_coredump_info(struct MPT3SAS_ADAPTER *ioc, u16 fault_code);
drivers/scsi/mpt3sas/mpt3sas_base.h
1752
#define mpt3sas_print_coredump_info(ioc, fault_code) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1753
do { pr_err("%s fault info from func: %s\n", ioc->name, __func__); \
drivers/scsi/mpt3sas/mpt3sas_base.h
1754
mpt3sas_base_coredump_info(ioc, fault_code); } while (0)
drivers/scsi/mpt3sas/mpt3sas_base.h
1756
int mpt3sas_base_wait_for_coredump_completion(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1758
int mpt3sas_base_sas_iounit_control(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1761
int mpt3sas_base_scsi_enclosure_processor(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1764
void mpt3sas_base_validate_event_type(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1767
void mpt3sas_halt_firmware(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1769
void mpt3sas_base_update_missing_delay(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1773
struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1775
int mpt3sas_port_enable(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1778
mpt3sas_wait_for_commands_to_complete(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1780
u8 mpt3sas_base_check_cmd_timeout(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1782
#define mpt3sas_check_cmd_timeout(ioc, status, mpi_request, sz, issue_reset) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1783
do { ioc_err(ioc, "In func: %s\n", __func__); \
drivers/scsi/mpt3sas/mpt3sas_base.h
1784
issue_reset = mpt3sas_base_check_cmd_timeout(ioc, \
drivers/scsi/mpt3sas/mpt3sas_base.h
1787
int mpt3sas_wait_for_ioc(struct MPT3SAS_ADAPTER *ioc, int wait_count);
drivers/scsi/mpt3sas/mpt3sas_base.h
1788
int mpt3sas_base_make_ioc_ready(struct MPT3SAS_ADAPTER *ioc, enum reset_type type);
drivers/scsi/mpt3sas/mpt3sas_base.h
1789
void mpt3sas_base_free_irq(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1790
void mpt3sas_base_disable_msix(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1792
void mpt3sas_base_pause_mq_polling(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1793
void mpt3sas_base_resume_mq_polling(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1794
int mpt3sas_base_unlock_and_get_host_diagnostic(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1796
void mpt3sas_base_lock_host_diagnostic(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1799
struct scsi_cmnd *mpt3sas_scsih_scsi_lookup_get(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1801
u8 mpt3sas_scsih_event_callback(struct MPT3SAS_ADAPTER *ioc, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.h
1803
void mpt3sas_scsih_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1805
struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1806
void mpt3sas_scsih_reset_done_handler(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1808
int mpt3sas_scsih_issue_tm(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_base.h
1811
int mpt3sas_scsih_issue_locked_tm(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_base.h
1815
void mpt3sas_scsih_set_tm_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle);
drivers/scsi/mpt3sas/mpt3sas_base.h
1816
void mpt3sas_scsih_clear_tm_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle);
drivers/scsi/mpt3sas/mpt3sas_base.h
1817
void mpt3sas_expander_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_base.h
1819
void mpt3sas_device_remove_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1821
u8 mpt3sas_check_for_pending_internal_cmds(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1824
mpt3sas_get_port_by_id(struct MPT3SAS_ADAPTER *ioc, u8 port,
drivers/scsi/mpt3sas/mpt3sas_base.h
1828
struct MPT3SAS_ADAPTER *ioc, u16 handle);
drivers/scsi/mpt3sas/mpt3sas_base.h
183
#define ioc_err(ioc, fmt, ...) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1830
struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_base.h
1833
struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_base.h
1836
struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_base.h
1838
struct _sas_device *mpt3sas_get_sdev_by_handle(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
184
pr_err("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpt3sas/mpt3sas_base.h
1840
struct _pcie_device *mpt3sas_get_pdev_by_handle(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1843
void mpt3sas_port_enable_complete(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1845
mpt3sas_raid_device_find_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle);
drivers/scsi/mpt3sas/mpt3sas_base.h
1848
__mpt3sas_get_sdev_by_rphy(struct MPT3SAS_ADAPTER *ioc, struct sas_rphy *rphy);
drivers/scsi/mpt3sas/mpt3sas_base.h
185
#define ioc_notice(ioc, fmt, ...) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1850
mpt3sas_get_vphy_by_phy(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1854
u8 mpt3sas_config_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.h
1856
int mpt3sas_config_get_number_hba_phys(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1858
int mpt3sas_config_get_manufacturing_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
186
pr_notice("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpt3sas/mpt3sas_base.h
1860
int mpt3sas_config_get_manufacturing_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1863
int mpt3sas_config_get_manufacturing_pg10(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1867
int mpt3sas_config_get_manufacturing_pg11(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
187
#define ioc_warn(ioc, fmt, ...) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1870
int mpt3sas_config_set_manufacturing_pg11(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1874
int mpt3sas_config_get_bios_pg2(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1876
int mpt3sas_config_get_bios_pg3(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1878
int mpt3sas_config_set_bios_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
188
pr_warn("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpt3sas/mpt3sas_base.h
1881
int mpt3sas_config_get_bios_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1884
int mpt3sas_config_get_iounit_pg0(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1886
int mpt3sas_config_get_sas_device_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1889
int mpt3sas_config_get_pcie_device_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
189
#define ioc_info(ioc, fmt, ...) \
drivers/scsi/mpt3sas/mpt3sas_base.h
1892
int mpt3sas_config_get_pcie_device_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1895
int mpt3sas_config_get_pcie_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1898
int mpt3sas_config_get_sas_iounit_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
190
pr_info("%s: " fmt, (ioc)->name, ##__VA_ARGS__)
drivers/scsi/mpt3sas/mpt3sas_base.h
1901
int mpt3sas_config_get_iounit_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1903
int mpt3sas_config_get_iounit_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1905
int mpt3sas_config_set_iounit_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1907
int mpt3sas_config_get_iounit_pg8(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1909
int mpt3sas_config_get_sas_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1912
int mpt3sas_config_set_sas_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1915
int mpt3sas_config_get_ioc_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1917
int mpt3sas_config_set_ioc_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1919
int mpt3sas_config_get_ioc_pg8(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1921
int mpt3sas_config_get_expander_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1924
int mpt3sas_config_get_expander_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1927
int mpt3sas_config_get_enclosure_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1930
int mpt3sas_config_get_phy_pg0(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1932
int mpt3sas_config_get_phy_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_base.h
1934
int mpt3sas_config_get_raid_volume_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1937
int mpt3sas_config_get_number_pds(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_base.h
1939
int mpt3sas_config_get_raid_volume_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1942
int mpt3sas_config_get_phys_disk_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1945
int mpt3sas_config_get_volume_handle(struct MPT3SAS_ADAPTER *ioc, u16 pd_handle,
drivers/scsi/mpt3sas/mpt3sas_base.h
1947
int mpt3sas_config_get_volume_wwid(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1950
mpt3sas_config_get_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1953
mpt3sas_config_get_driver_trigger_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1956
mpt3sas_config_get_driver_trigger_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1959
mpt3sas_config_get_driver_trigger_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1962
mpt3sas_config_get_driver_trigger_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1965
mpt3sas_config_update_driver_trigger_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1968
mpt3sas_config_update_driver_trigger_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1971
mpt3sas_config_update_driver_trigger_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1974
mpt3sas_config_update_driver_trigger_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1982
void mpt3sas_ctl_release(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1983
u8 mpt3sas_ctl_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.h
1985
void mpt3sas_ctl_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1986
void mpt3sas_ctl_clear_outstanding_ioctls(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1987
void mpt3sas_ctl_reset_done_handler(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
1988
u8 mpt3sas_ctl_event_callback(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1990
void mpt3sas_ctl_add_to_event_log(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1993
void mpt3sas_enable_diag_buffer(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
1995
int mpt3sas_send_diag_release(struct MPT3SAS_ADAPTER *ioc, u8 buffer_type,
drivers/scsi/mpt3sas/mpt3sas_base.h
2000
u8 mpt3sas_transport_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_base.h
2002
struct _sas_port *mpt3sas_transport_port_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2004
void mpt3sas_transport_port_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_base.h
2006
int mpt3sas_transport_add_host_phy(struct MPT3SAS_ADAPTER *ioc, struct _sas_phy
drivers/scsi/mpt3sas/mpt3sas_base.h
2008
int mpt3sas_transport_add_expander_phy(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2011
void mpt3sas_transport_update_links(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2017
mpt3sas_transport_del_phy_from_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2020
mpt3sas_transport_add_phy_to_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2024
void mpt3sas_send_trigger_data_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2026
void mpt3sas_process_trigger_data(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2028
void mpt3sas_trigger_master(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2030
void mpt3sas_trigger_event(struct MPT3SAS_ADAPTER *ioc, u16 event,
drivers/scsi/mpt3sas/mpt3sas_base.h
2032
void mpt3sas_trigger_scsi(struct MPT3SAS_ADAPTER *ioc, u8 sense_key,
drivers/scsi/mpt3sas/mpt3sas_base.h
2034
void mpt3sas_trigger_mpi(struct MPT3SAS_ADAPTER *ioc, u16 ioc_status,
drivers/scsi/mpt3sas/mpt3sas_base.h
2038
u8 mpt3sas_get_num_volumes(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
2039
void mpt3sas_init_warpdrive_properties(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
2042
mpt3sas_setup_direct_io(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
drivers/scsi/mpt3sas/mpt3sas_base.h
2045
void mpt3sas_setup_debugfs(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
2046
void mpt3sas_destroy_debugfs(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_base.h
954
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_base.h
983
typedef int (*MPT_BUILD_SG_SCMD)(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
985
typedef void (*MPT_BUILD_SG)(struct MPT3SAS_ADAPTER *ioc, void *psge,
drivers/scsi/mpt3sas/mpt3sas_base.h
988
typedef void (*MPT_BUILD_ZERO_LEN_SGE)(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_base.h
992
typedef void (*NVME_BUILD_PRP)(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_base.h
998
typedef void (*PUT_SMID_IO_FP_HIP) (struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_config.c
1004
mpt3sas_config_get_iounit_pg8(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1016
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1017
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1023
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
104
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_config.c
1040
mpt3sas_config_get_ioc_pg8(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1052
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1053
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1059
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1075
mpt3sas_config_get_ioc_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1087
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1088
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1094
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1111
mpt3sas_config_set_ioc_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1123
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1124
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1130
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1149
mpt3sas_config_get_sas_device_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1163
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1164
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1171
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1190
mpt3sas_config_get_pcie_device_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1204
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1205
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1212
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1230
mpt3sas_config_get_pcie_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1244
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1245
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1250
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1268
mpt3sas_config_get_pcie_device_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1282
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1283
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1290
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1306
mpt3sas_config_get_number_hba_phys(struct MPT3SAS_ADAPTER *ioc, u8 *num_phys)
drivers/scsi/mpt3sas/mpt3sas_config.c
1322
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1323
r = _config_request(ioc, &mpi_request, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1329
r = _config_request(ioc, &mpi_request, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1356
mpt3sas_config_get_sas_iounit_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1370
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1371
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1377
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1397
mpt3sas_config_get_sas_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1411
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1412
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1418
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1438
mpt3sas_config_set_sas_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1452
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1453
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1459
_config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1462
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1480
mpt3sas_config_get_expander_pg0(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
1493
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1494
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1501
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1520
mpt3sas_config_get_expander_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
1534
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1535
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1544
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1563
mpt3sas_config_get_enclosure_pg0(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
1576
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1577
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1584
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1602
mpt3sas_config_get_phy_pg0(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
1615
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1616
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1624
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1642
mpt3sas_config_get_phy_pg1(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
1655
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1656
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1664
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1683
mpt3sas_config_get_raid_volume_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1696
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1697
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1704
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1721
mpt3sas_config_get_number_pds(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_config.c
1737
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1738
r = _config_request(ioc, &mpi_request, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1746
r = _config_request(ioc, &mpi_request, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
175
ioc_info(ioc, "%s: %s(%d), action(%d), form(0x%08x), smid(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_config.c
1773
mpt3sas_config_get_raid_volume_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1786
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1787
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1794
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1812
mpt3sas_config_get_phys_disk_pg0(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
1825
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1826
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1833
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
184
ioc_info(ioc, "\tiocstatus(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_config.c
1850
mpt3sas_config_get_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1864
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1865
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1871
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1888
_config_set_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1902
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1903
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1909
_config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1913
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
1930
mpt3sas_config_update_driver_trigger_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1938
rc = mpt3sas_config_get_driver_trigger_pg0(ioc, &mpi_reply, &tg_pg0);
drivers/scsi/mpt3sas/mpt3sas_config.c
1944
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1945
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1958
rc = _config_set_driver_trigger_pg0(ioc, &mpi_reply, &tg_pg0);
drivers/scsi/mpt3sas/mpt3sas_config.c
1964
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1965
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1984
mpt3sas_config_get_driver_trigger_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
199
_config_alloc_config_dma_memory(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
1998
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
1999
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2005
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2022
_config_set_driver_trigger_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2036
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2037
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
204
if (mem->sz > ioc->config_page_sz) {
drivers/scsi/mpt3sas/mpt3sas_config.c
2043
_config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2047
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
205
mem->page = dma_alloc_coherent(&ioc->pdev->dev, mem->sz,
drivers/scsi/mpt3sas/mpt3sas_config.c
2064
mpt3sas_config_update_driver_trigger_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2072
rc = mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2077
rc = mpt3sas_config_get_driver_trigger_pg1(ioc, &mpi_reply, &tg_pg1);
drivers/scsi/mpt3sas/mpt3sas_config.c
208
ioc_err(ioc, "%s: dma_alloc_coherent failed asking for (%d) bytes!!\n",
drivers/scsi/mpt3sas/mpt3sas_config.c
2084
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2085
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2101
rc = _config_set_driver_trigger_pg1(ioc, &mpi_reply, &tg_pg1);
drivers/scsi/mpt3sas/mpt3sas_config.c
2108
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2109
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2119
mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
213
mem->page = ioc->config_page;
drivers/scsi/mpt3sas/mpt3sas_config.c
2135
mpt3sas_config_get_driver_trigger_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
214
mem->page_dma = ioc->config_page_dma;
drivers/scsi/mpt3sas/mpt3sas_config.c
2149
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2150
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2156
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
216
ioc->config_vaddr = mem->page;
drivers/scsi/mpt3sas/mpt3sas_config.c
2173
_config_set_driver_trigger_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2187
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2188
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2194
_config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2198
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2215
mpt3sas_config_update_driver_trigger_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2223
rc = mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2228
rc = mpt3sas_config_get_driver_trigger_pg2(ioc, &mpi_reply, &tg_pg2);
drivers/scsi/mpt3sas/mpt3sas_config.c
2235
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2236
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2261
rc = _config_set_driver_trigger_pg2(ioc, &mpi_reply, &tg_pg2);
drivers/scsi/mpt3sas/mpt3sas_config.c
2268
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2269
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2279
mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2295
mpt3sas_config_get_driver_trigger_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
230
_config_free_config_dma_memory(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2309
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2310
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2316
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
233
if (mem->sz > ioc->config_page_sz)
drivers/scsi/mpt3sas/mpt3sas_config.c
2333
_config_set_driver_trigger_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
234
dma_free_coherent(&ioc->pdev->dev, mem->sz, mem->page,
drivers/scsi/mpt3sas/mpt3sas_config.c
2347
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2348
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2354
_config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2358
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2375
mpt3sas_config_update_driver_trigger_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2383
rc = mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2388
rc = mpt3sas_config_get_driver_trigger_pg3(ioc, &mpi_reply, &tg_pg3);
drivers/scsi/mpt3sas/mpt3sas_config.c
2395
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2396
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2420
rc = _config_set_driver_trigger_pg3(ioc, &mpi_reply, &tg_pg3);
drivers/scsi/mpt3sas/mpt3sas_config.c
2427
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2428
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2436
mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2452
mpt3sas_config_get_driver_trigger_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2466
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2467
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2473
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2490
_config_set_driver_trigger_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2504
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2505
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2511
_config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
2515
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
252
mpt3sas_config_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_config.c
2532
mpt3sas_config_update_driver_trigger_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2540
rc = mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2545
rc = mpt3sas_config_get_driver_trigger_pg4(ioc, &mpi_reply, &tg_pg4);
drivers/scsi/mpt3sas/mpt3sas_config.c
2552
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2553
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
257
if (ioc->config_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_config.c
2576
rc = _config_set_driver_trigger_pg4(ioc, &mpi_reply, &tg_pg4);
drivers/scsi/mpt3sas/mpt3sas_config.c
2583
dcprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
2584
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
259
if (ioc->config_cmds.smid != smid)
drivers/scsi/mpt3sas/mpt3sas_config.c
2594
mpt3sas_config_update_driver_trigger_pg0(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
261
ioc->config_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_config.c
2611
mpt3sas_config_get_volume_handle(struct MPT3SAS_ADAPTER *ioc, u16 pd_handle,
drivers/scsi/mpt3sas/mpt3sas_config.c
262
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_config.c
2631
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
2632
r = _config_request(ioc, &mpi_request, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
264
ioc->config_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_config.c
2649
r = _config_request(ioc, &mpi_request, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
265
memcpy(ioc->config_cmds.reply, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
268
ioc->config_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_config.c
269
if (ioc->logging_level & MPT_DEBUG_CONFIG)
drivers/scsi/mpt3sas/mpt3sas_config.c
270
_config_display_some_debug(ioc, smid, "config_done", mpi_reply);
drivers/scsi/mpt3sas/mpt3sas_config.c
2701
mpt3sas_config_get_volume_wwid(struct MPT3SAS_ADAPTER *ioc, u16 volume_handle,
drivers/scsi/mpt3sas/mpt3sas_config.c
2708
if (!(mpt3sas_config_get_raid_volume_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
271
ioc->config_cmds.smid = USHRT_MAX;
drivers/scsi/mpt3sas/mpt3sas_config.c
272
complete(&ioc->config_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_config.c
296
_config_request(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigRequest_t
drivers/scsi/mpt3sas/mpt3sas_config.c
307
mutex_lock(&ioc->config_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_config.c
308
if (ioc->config_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_config.c
309
ioc_err(ioc, "%s: config_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_config.c
310
mutex_unlock(&ioc->config_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_config.c
331
r = _config_alloc_config_dma_memory(ioc, &mem);
drivers/scsi/mpt3sas/mpt3sas_config.c
338
ioc->base_add_sg_single(&mpi_request->PageBufferSGE,
drivers/scsi/mpt3sas/mpt3sas_config.c
345
ioc->base_add_sg_single(&mpi_request->PageBufferSGE,
drivers/scsi/mpt3sas/mpt3sas_config.c
357
ioc_info(ioc, "%s: attempting retry (%d)\n",
drivers/scsi/mpt3sas/mpt3sas_config.c
361
r = mpt3sas_wait_for_ioc(ioc, MPT3_CONFIG_PAGE_DEFAULT_TIMEOUT);
drivers/scsi/mpt3sas/mpt3sas_config.c
368
smid = mpt3sas_base_get_smid(ioc, ioc->config_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_config.c
370
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_config.c
371
ioc->config_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_config.c
377
memset(ioc->config_cmds.reply, 0, sizeof(Mpi2ConfigReply_t));
drivers/scsi/mpt3sas/mpt3sas_config.c
378
ioc->config_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_config.c
379
config_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_config.c
380
ioc->config_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_config.c
382
if (ioc->logging_level & MPT_DEBUG_CONFIG)
drivers/scsi/mpt3sas/mpt3sas_config.c
383
_config_display_some_debug(ioc, smid, "config_request", NULL);
drivers/scsi/mpt3sas/mpt3sas_config.c
384
init_completion(&ioc->config_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_config.c
385
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_config.c
386
wait_for_completion_timeout(&ioc->config_cmds.done, timeout*HZ);
drivers/scsi/mpt3sas/mpt3sas_config.c
387
if (!(ioc->config_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_config.c
388
if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
drivers/scsi/mpt3sas/mpt3sas_config.c
389
_config_display_some_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
391
ioc_err(ioc, "%s: command timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_config.c
392
mpt3sas_base_check_cmd_timeout(ioc, ioc->config_cmds.status,
drivers/scsi/mpt3sas/mpt3sas_config.c
395
if (ioc->config_cmds.smid == smid)
drivers/scsi/mpt3sas/mpt3sas_config.c
396
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_config.c
397
if (ioc->config_cmds.status & MPT3_CMD_RESET)
drivers/scsi/mpt3sas/mpt3sas_config.c
399
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_config.c
407
if (ioc->config_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_config.c
408
memcpy(mpi_reply, ioc->config_cmds.reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
414
if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
drivers/scsi/mpt3sas/mpt3sas_config.c
415
_config_display_some_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
417
_debug_dump_mf(mpi_request, ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
418
_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
420
ioc->name, __func__,
drivers/scsi/mpt3sas/mpt3sas_config.c
428
if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
drivers/scsi/mpt3sas/mpt3sas_config.c
429
_config_display_some_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
431
_debug_dump_mf(mpi_request, ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
432
_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
434
ioc->name, __func__,
drivers/scsi/mpt3sas/mpt3sas_config.c
443
ioc_info(ioc, "%s: retry (%d) completed!!\n",
drivers/scsi/mpt3sas/mpt3sas_config.c
455
if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
drivers/scsi/mpt3sas/mpt3sas_config.c
456
_config_display_some_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
458
_debug_dump_mf(mpi_request, ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
459
_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
463
ioc->name, __func__,
drivers/scsi/mpt3sas/mpt3sas_config.c
471
if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
drivers/scsi/mpt3sas/mpt3sas_config.c
472
_config_display_some_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
474
_debug_dump_mf(mpi_request, ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
475
_debug_dump_reply(mpi_reply, ioc->reply_sz/4);
drivers/scsi/mpt3sas/mpt3sas_config.c
479
ioc->name, __func__,
drivers/scsi/mpt3sas/mpt3sas_config.c
489
_config_free_config_dma_memory(ioc, &mem);
drivers/scsi/mpt3sas/mpt3sas_config.c
491
ioc->config_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_config.c
492
mutex_unlock(&ioc->config_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_config.c
495
if (ioc->drv_internal_flags & MPT_DRV_INTERNAL_FIRST_PE_ISSUED) {
drivers/scsi/mpt3sas/mpt3sas_config.c
496
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_config.c
499
if (mpt3sas_base_check_for_fault_and_issue_reset(ioc))
drivers/scsi/mpt3sas/mpt3sas_config.c
517
mpt3sas_config_get_manufacturing_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
529
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
530
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
536
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
553
mpt3sas_config_get_manufacturing_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
565
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
566
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
572
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
589
mpt3sas_config_get_manufacturing_pg10(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
602
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
603
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
609
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
626
mpt3sas_config_get_manufacturing_pg11(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
639
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
640
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
646
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
663
mpt3sas_config_set_manufacturing_pg11(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
676
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
677
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
683
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
700
mpt3sas_config_get_bios_pg2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
712
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
713
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
719
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
736
mpt3sas_config_get_bios_pg3(struct MPT3SAS_ADAPTER *ioc, Mpi2ConfigReply_t
drivers/scsi/mpt3sas/mpt3sas_config.c
748
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
749
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
755
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
774
mpt3sas_config_set_bios_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
789
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
791
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
797
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
815
mpt3sas_config_get_bios_pg4(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
828
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
829
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
841
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
860
mpt3sas_config_get_iounit_pg0(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
872
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
873
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
879
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
896
mpt3sas_config_get_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
908
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
909
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
915
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
932
mpt3sas_config_set_iounit_pg1(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
944
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
945
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
951
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
969
mpt3sas_config_get_iounit_pg3(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_config.c
98
_config_display_some_debug(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_config.c
981
ioc->build_zero_len_sge_mpi(ioc, &mpi_request.PageBufferSGE);
drivers/scsi/mpt3sas/mpt3sas_config.c
982
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_config.c
988
r = _config_request(ioc, &mpi_request, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1000
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, data_in_dma,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1002
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1007
if (ioc->pdev->vendor == MPI2_MFGPAGE_VENDORID_ATTO) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1008
ioc_info(ioc, "Firmware download not supported for ATTO HBA.\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1016
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, data_in_dma,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1018
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
102
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1029
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1037
ioc->build_sg_mpi(ioc, psge, data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1042
src = (void *)dst + ioc->sge_size;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1044
memcpy(&tmp, src, ioc->sge_size);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1045
memcpy(src, dst, ioc->sge_size);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1046
memcpy(dst, &tmp, ioc->sge_size);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1048
if (ioc->logging_level & MPT_DEBUG_TM) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1049
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1052
ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1055
ioc->build_sg_mpi(ioc, psge, data_out_dma, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1057
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1068
ioc->ioc_link_reset_in_progress = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1069
ioc->ignore_loginfos = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1075
ioc->build_sg_mpi(ioc, psge, data_out_dma, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1077
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1085
wait_for_completion_timeout(&ioc->ctl_cmds.done, timeout*HZ);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1089
mpt3sas_scsih_clear_tm_flag(ioc, le16_to_cpu(
drivers/scsi/mpt3sas/mpt3sas_ctl.c
109
snprintf(ioc->tmp_string, MPT_STRING_LENGTH,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1091
mpt3sas_trigger_master(ioc, MASTER_TRIGGER_TASK_MANAGMENT);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1094
ioc->ioc_link_reset_in_progress) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1095
ioc->ioc_link_reset_in_progress = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1096
ioc->ignore_loginfos = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1098
if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1099
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1100
ioc->ctl_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1105
mpi_reply = ioc->ctl_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1108
(ioc->logging_level & MPT_DEBUG_TM)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1112
ioc_info(ioc, "TASK_MGMT: IOCStatus(0x%04x), IOCLogInfo(0x%08x), TerminationCount(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
113
desc = ioc->tmp_string;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1131
sz = min_t(u32, karg.max_reply_bytes, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1132
if (copy_to_user(karg.reply_frame_buf_ptr, ioc->ctl_cmds.reply,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1147
ioc_info(ioc, "Response buffer provided by application is NULL; Response data will not be returned\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1154
if (copy_to_user(karg.sense_data_ptr, ioc->ctl_cmds.sense,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1170
ioc_info(ioc, "issue target reset: handle = (0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1172
mpt3sas_halt_firmware(ioc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1173
pcie_device = mpt3sas_get_pdev_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1175
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1178
tm_ret = mpt3sas_scsih_issue_locked_tm(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1185
tm_ret = mpt3sas_scsih_issue_locked_tm(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1192
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1195
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1198
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1207
dma_free_coherent(&ioc->pdev->dev, data_in_sz, data_in,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1211
dma_free_coherent(&ioc->pdev->dev, data_out_sz, data_out,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1215
ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1225
_ctl_getiocinfo(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1229
dctlprintk(ioc, ioc_info(ioc, "%s: enter\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1233
if (ioc->pfacts)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1234
karg.port_number = ioc->pfacts[0].PortNumber;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1235
karg.hw_rev = ioc->pdev->revision;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1236
karg.pci_id = ioc->pdev->device;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1237
karg.subsystem_device = ioc->pdev->subsystem_device;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1238
karg.subsystem_vendor = ioc->pdev->subsystem_vendor;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1239
karg.pci_information.u.bits.bus = ioc->pdev->bus->number;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1240
karg.pci_information.u.bits.device = PCI_SLOT(ioc->pdev->devfn);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1241
karg.pci_information.u.bits.function = PCI_FUNC(ioc->pdev->devfn);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1242
karg.pci_information.segment_id = pci_domain_nr(ioc->pdev->bus);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1243
karg.firmware_version = ioc->facts.FWVersion.Word;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1244
strcpy(karg.driver_version, ioc->driver_name);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1246
switch (ioc->hba_mpi_version_belonged) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1248
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1256
if (ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1263
karg.bios_version = le32_to_cpu(ioc->bios_pg3.BiosVersion);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1281
_ctl_eventquery(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1291
dctlprintk(ioc, ioc_info(ioc, "%s: enter\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1295
memcpy(karg.event_types, ioc->event_type,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
130
snprintf(ioc->tmp_string, MPT_STRING_LENGTH,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1312
_ctl_eventenable(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1322
dctlprintk(ioc, ioc_info(ioc, "%s: enter\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1325
memcpy(ioc->event_type, karg.event_types,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1327
mpt3sas_base_validate_event_type(ioc, ioc->event_type);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1329
if (ioc->event_log)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1332
ioc->event_context = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1333
ioc->aen_event_read_flag = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1334
ioc->event_log = kzalloc_objs(struct MPT3_IOCTL_EVENTS,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1336
if (!ioc->event_log) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
135
desc = ioc->tmp_string;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1350
_ctl_eventreport(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1362
dctlprintk(ioc, ioc_info(ioc, "%s: enter\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1373
if (!max || !ioc->event_log)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1377
if (copy_to_user(uarg->event_data, ioc->event_log, number_bytes)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1384
ioc->aen_event_read_flag = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1394
_ctl_do_reset(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1405
if (ioc->shost_recovery || ioc->pci_error_recovery ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1406
ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1409
dctlprintk(ioc, ioc_info(ioc, "%s: enter\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1412
ioc->reset_from_user = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1413
retval = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1414
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1425
_ctl_btdh_search_sas_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1432
if (list_empty(&ioc->sas_device_list))
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1435
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1436
list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1451
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1461
_ctl_btdh_search_pcie_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1468
if (list_empty(&ioc->pcie_device_list))
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1471
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1472
list_for_each_entry(pcie_device, &ioc->pcie_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1487
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1497
_ctl_btdh_search_raid_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1504
if (list_empty(&ioc->raid_device_list))
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1507
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1508
list_for_each_entry(raid_device, &ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1523
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1533
_ctl_btdh_mapping(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1544
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1547
rc = _ctl_btdh_search_sas_device(ioc, &karg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1549
rc = _ctl_btdh_search_pcie_device(ioc, &karg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1551
_ctl_btdh_search_raid_device(ioc, &karg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1569
_ctl_diag_capability(struct MPT3SAS_ADAPTER *ioc, u8 buffer_type)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1575
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1580
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1585
if (ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1602
_ctl_diag_get_bufftype(struct MPT3SAS_ADAPTER *ioc, u32 unique_id)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1607
if (ioc->unique_id[index] == unique_id)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
161
snprintf(ioc->tmp_string, MPT_STRING_LENGTH,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1621
_ctl_diag_register_2(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1636
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1639
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1641
ioc_err(ioc, "%s: failed due to ioc not operational\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1647
if (ioc->ctl_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1648
ioc_err(ioc, "%s: ctl_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
165
desc = ioc->tmp_string;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1654
if (!_ctl_diag_capability(ioc, buffer_type)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1655
ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1661
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1667
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1669
!(ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1671
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1673
__func__, buffer_type, ioc->unique_id[buffer_type]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1677
if (ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1690
if (ioc->unique_id[buffer_type] == MPT3DIAGBUFFUNIQUEID &&
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1691
ioc->diag_buffer_sz[buffer_type] ==
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1694
if (!(ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1696
dctlprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1699
ioc->unique_id[buffer_type],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1706
ioc->unique_id[buffer_type] =
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1711
} else if (ioc->unique_id[buffer_type] !=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1713
if (ioc->unique_id[buffer_type] !=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1715
ioc->diag_buffer_sz[buffer_type] !=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1717
!(ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1719
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1725
ioc_err(ioc, "%s: already has a registered buffer for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1729
} else if (ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1732
if (ioc->unique_id[buffer_type] != MPT3DIAGBUFFUNIQUEID ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1733
ioc->diag_buffer_sz[buffer_type] !=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1736
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1739
ioc->diag_buffer_sz[buffer_type]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1745
ioc_err(ioc, "%s: the requested_buffer_size is not 4 byte aligned\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1750
smid = mpt3sas_base_get_smid(ioc, ioc->ctl_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1752
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1758
ioc->ctl_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1759
memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1760
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1761
memset(mpi_request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1762
ioc->ctl_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1764
request_data = ioc->diag_buffer[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1766
ioc->unique_id[buffer_type] = diag_register->unique_id;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1768
ioc->reset_from_user = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1769
memset(&ioc->htb_rel, 0, sizeof(struct htb_rel_query));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1770
ioc->diag_buffer_status[buffer_type] &=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1772
memcpy(ioc->product_specific[buffer_type],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1774
ioc->diagnostic_flags[buffer_type] = diag_register->diagnostic_flags;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1777
request_data_dma = ioc->diag_buffer_dma[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1778
if (request_data_sz != ioc->diag_buffer_sz[buffer_type]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1779
dma_free_coherent(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1780
ioc->diag_buffer_sz[buffer_type],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1787
ioc->diag_buffer_sz[buffer_type] = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1788
ioc->diag_buffer_dma[buffer_type] = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1789
request_data = dma_alloc_coherent(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1792
ioc_err(ioc, "%s: failed allocating memory for diag buffers, requested size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1794
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1798
ioc->diag_buffer[buffer_type] = request_data;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1799
ioc->diag_buffer_sz[buffer_type] = request_data_sz;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1800
ioc->diag_buffer_dma[buffer_type] = request_data_dma;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1811
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1812
ioc_info(ioc, "%s: diag_buffer(0x%p), dma(0x%llx), sz(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1819
cpu_to_le32(ioc->product_specific[buffer_type][i]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1821
init_completion(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1822
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1823
wait_for_completion_timeout(&ioc->ctl_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1826
if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1827
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1828
ioc->ctl_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1834
if ((ioc->ctl_cmds.status & MPT3_CMD_REPLY_VALID) == 0) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1835
ioc_err(ioc, "%s: no reply message\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1840
mpi_reply = ioc->ctl_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1844
ioc->diag_buffer_status[buffer_type] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1846
dctlprintk(ioc, ioc_info(ioc, "%s: success\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1848
ioc_info(ioc, "%s: ioc_status(0x%04x) log_info(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1856
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1861
dma_free_coherent(&ioc->pdev->dev, request_data_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1863
ioc->diag_buffer[buffer_type] = NULL;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1864
ioc->diag_buffer_status[buffer_type] &=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1868
ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1881
mpt3sas_enable_diag_buffer(struct MPT3SAS_ADAPTER *ioc, u8 bits_to_register)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1885
u32 trace_buff_size = ioc->manu_pg11.HostTraceBufferMaxSizeKB<<10;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1892
ioc_info(ioc, "registering trace buffer support\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1893
ioc->diag_trigger_master.MasterData =
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1897
(ioc->hba_mpi_version_belonged == MPI2_VERSION) ?
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1903
ioc->manu_pg11.HostTraceBufferMinSizeKB<<10;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1905
ioc->manu_pg11.HostTraceBufferDecrementSizeKB<<10;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1909
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1913
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1932
ret_val = _ctl_diag_register_2(ioc, &diag_register);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1946
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1949
else if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE]
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1951
ioc_info(ioc, "Trace buffer memory %d KB allocated\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1953
if (ioc->hba_mpi_version_belonged != MPI2_VERSION)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1954
ioc->diag_buffer_status[
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1961
ioc_info(ioc, "registering snapshot buffer support\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1966
_ctl_diag_register_2(ioc, &diag_register);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
197
ioc_info(ioc, "%s: %s, smid(%d)\n", calling_function_name, desc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1970
ioc_info(ioc, "registering extended buffer support\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1975
_ctl_diag_register_2(ioc, &diag_register);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1988
_ctl_diag_register(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
1999
rc = _ctl_diag_register_2(ioc, &karg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2001
if (!rc && (ioc->diag_buffer_status[karg.buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2003
ioc->diag_buffer_status[karg.buffer_type] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2018
_ctl_diag_unregister(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
203
ioc_info(ioc, "\tiocstatus(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2032
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2035
buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2037
ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2042
if (!_ctl_diag_capability(ioc, buffer_type)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2043
ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2048
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2050
ioc_err(ioc, "%s: buffer_type(0x%02x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2054
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2056
ioc_err(ioc, "%s: buffer_type(0x%02x) has not been released\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2061
if (karg.unique_id != ioc->unique_id[buffer_type]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2062
ioc_err(ioc, "%s: unique_id(0x%08x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2067
request_data = ioc->diag_buffer[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2069
ioc_err(ioc, "%s: doesn't have memory allocated for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2074
if (ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2076
ioc->unique_id[buffer_type] = MPT3DIAGBUFFUNIQUEID;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2077
ioc->diag_buffer_status[buffer_type] &=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2079
ioc->diag_buffer_status[buffer_type] &=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2082
request_data_sz = ioc->diag_buffer_sz[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2083
request_data_dma = ioc->diag_buffer_dma[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2084
dma_free_coherent(&ioc->pdev->dev, request_data_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2086
ioc->diag_buffer[buffer_type] = NULL;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2087
ioc->diag_buffer_status[buffer_type] = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2102
_ctl_diag_query(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2115
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2121
if (!_ctl_diag_capability(ioc, buffer_type)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2122
ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2127
if (!(ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2129
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2131
ioc_err(ioc, "%s: buffer_type(0x%02x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2138
if (karg.unique_id != ioc->unique_id[buffer_type]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2139
ioc_err(ioc, "%s: unique_id(0x%08x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2145
request_data = ioc->diag_buffer[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2147
ioc_err(ioc, "%s: doesn't have buffer for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
215
sas_device = mpt3sas_get_sdev_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2152
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2156
if (!(ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2160
if (!(ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2164
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2170
ioc->product_specific[buffer_type][i];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2172
karg.total_buffer_size = ioc->diag_buffer_sz[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2174
karg.unique_id = ioc->unique_id[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2175
karg.diagnostic_flags = ioc->diagnostic_flags[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2178
ioc_err(ioc, "%s: unable to write mpt3_diag_query data @ %p\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
218
ioc_warn(ioc, "\tsas_address(0x%016llx), phy(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2193
mpt3sas_send_diag_release(struct MPT3SAS_ADAPTER *ioc, u8 buffer_type,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2204
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
221
ioc_warn(ioc, "\tenclosure_logical_id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2211
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2213
if (ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2215
ioc->diag_buffer_status[buffer_type] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2217
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2218
ioc_info(ioc, "%s: skipping due to FAULT state\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2224
if (ioc->ctl_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2225
ioc_err(ioc, "%s: ctl_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2230
smid = mpt3sas_base_get_smid(ioc, ioc->ctl_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2232
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2237
ioc->ctl_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2238
memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2239
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2240
memset(mpi_request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2241
ioc->ctl_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2248
init_completion(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2249
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2250
wait_for_completion_timeout(&ioc->ctl_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2253
if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2254
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2255
ioc->ctl_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2263
if ((ioc->ctl_cmds.status & MPT3_CMD_REPLY_VALID) == 0) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2264
ioc_err(ioc, "%s: no reply message\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2269
mpi_reply = ioc->ctl_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
227
pcie_device = mpt3sas_get_pdev_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2273
ioc->diag_buffer_status[buffer_type] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2275
dctlprintk(ioc, ioc_info(ioc, "%s: success\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2277
ioc_info(ioc, "%s: ioc_status(0x%04x) log_info(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2284
ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2298
_ctl_diag_release(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
230
ioc_warn(ioc, "\tWWID(0x%016llx), port(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2312
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2315
buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2317
ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2322
if (!_ctl_diag_capability(ioc, buffer_type)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2323
ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2328
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2330
ioc_err(ioc, "%s: buffer_type(0x%02x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2335
if (karg.unique_id != ioc->unique_id[buffer_type]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2336
ioc_err(ioc, "%s: unique_id(0x%08x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
234
ioc_warn(ioc, "\tenclosure_logical_id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2341
if (ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2343
ioc_err(ioc, "%s: buffer_type(0x%02x) is already released\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2348
request_data = ioc->diag_buffer[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2351
ioc_err(ioc, "%s: doesn't have memory allocated for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2357
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2359
ioc->diag_buffer_status[buffer_type] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2361
ioc->diag_buffer_status[buffer_type] &=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2363
ioc_err(ioc, "%s: buffer_type(0x%02x) was released due to host reset\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2368
rc = mpt3sas_send_diag_release(ioc, buffer_type, &issue_reset);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2371
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2382
_ctl_diag_read_buffer(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2402
dctlprintk(ioc, ioc_info(ioc, "%s\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2405
buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2407
ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
241
ioc_info(ioc, "\tscsi_state(0x%02x), scsi_status(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2412
if (!_ctl_diag_capability(ioc, buffer_type)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2413
ioc_err(ioc, "%s: doesn't have capability for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2418
if (karg.unique_id != ioc->unique_id[buffer_type]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2419
ioc_err(ioc, "%s: unique_id(0x%08x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2424
request_data = ioc->diag_buffer[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2426
ioc_err(ioc, "%s: doesn't have buffer for buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2431
request_size = ioc->diag_buffer_sz[buffer_type];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2434
ioc_err(ioc, "%s: either the starting_offset or bytes_to_read are not 4 byte aligned\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2443
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2444
ioc_info(ioc, "%s: diag_buffer(%p), offset(%d), sz(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2457
ioc_err(ioc, "%s: Unable to write mpt_diag_read_buffer_t data @ %p\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2465
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2466
ioc_info(ioc, "%s: Reregister buffer_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2468
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2470
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2471
ioc_info(ioc, "%s: buffer_type(0x%02x) is still registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2478
if (ioc->ctl_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2479
ioc_err(ioc, "%s: ctl_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2484
smid = mpt3sas_base_get_smid(ioc, ioc->ctl_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2486
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2492
ioc->ctl_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2493
memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2494
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2495
memset(mpi_request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2496
ioc->ctl_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2501
cpu_to_le32(ioc->diag_buffer_sz[buffer_type]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2503
cpu_to_le64(ioc->diag_buffer_dma[buffer_type]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2506
cpu_to_le32(ioc->product_specific[buffer_type][i]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2510
init_completion(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2511
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2512
wait_for_completion_timeout(&ioc->ctl_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2515
if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2516
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2517
ioc->ctl_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2523
if ((ioc->ctl_cmds.status & MPT3_CMD_REPLY_VALID) == 0) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2524
ioc_err(ioc, "%s: no reply message\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2529
mpi_reply = ioc->ctl_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2533
ioc->diag_buffer_status[buffer_type] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2535
ioc->diag_buffer_status[buffer_type] &=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2537
dctlprintk(ioc, ioc_info(ioc, "%s: success\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2539
ioc_info(ioc, "%s: ioc_status(0x%04x) log_info(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2547
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2551
ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2565
_ctl_addnl_diag_query(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2572
ioc->name, __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2575
dctlprintk(ioc, ioc_info(ioc, "%s\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2577
ioc_err(ioc, "%s: unique_id is(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2581
buffer_type = _ctl_diag_get_bufftype(ioc, karg.unique_id);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2583
ioc_err(ioc, "%s: buffer with unique_id(0x%08x) not found\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2588
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2590
ioc_info(ioc, "%s: buffer_type(0x%02x) is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2594
if ((ioc->diag_buffer_status[buffer_type] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2596
ioc_err(ioc, "%s: buffer_type(0x%02x) is not released\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2600
memcpy(&karg.rel_query, &ioc->htb_rel, sizeof(karg.rel_query));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2603
ioc_err(ioc, "%s: unable to write mpt3_addnl_diag_query data @ %p\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
261
mpt3sas_ctl_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2618
_ctl_enable_diag_sbr_reload(struct MPT3SAS_ADAPTER *ioc, void __user *arg)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2622
if (ioc->shost_recovery ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2623
ioc->pci_error_recovery || ioc->is_driver_loading ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2624
ioc->remove_host)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2627
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2632
host_diagnostic = ioc->base_readl(&ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2637
if (mutex_trylock(&ioc->hostdiag_unlock_mutex)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2638
if (mpt3sas_base_unlock_and_get_host_diagnostic(ioc, &host_diagnostic)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2639
mutex_unlock(&ioc->hostdiag_unlock_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2646
writel(host_diagnostic, &ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2647
host_diagnostic = ioc->base_readl(&ioc->chip->HostDiagnostic);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2648
mpt3sas_base_lock_host_diagnostic(ioc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2649
mutex_unlock(&ioc->hostdiag_unlock_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2652
ioc_err(ioc, "%s: Failed to set Diag SBR Reload Bit\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2656
ioc_info(ioc, "%s: Successfully set the Diag SBR Reload Bit\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2670
_ctl_compat_mpt_command(struct MPT3SAS_ADAPTER *ioc, unsigned cmd,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
270
if (ioc->ctl_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2702
return _ctl_do_mpt_command(ioc, karg, &uarg->mf);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2719
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
272
if (ioc->ctl_cmds.smid != smid)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2733
&ioc, mpi_version) == -1 || !ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2737
mutex_lock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2739
if (ioc->shost_recovery || ioc->pci_error_recovery ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
274
ioc->ctl_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2740
ioc->is_driver_loading || ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2747
if (!mutex_trylock(&ioc->ctl_cmds.mutex)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
275
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2751
} else if (mutex_lock_interruptible(&ioc->ctl_cmds.mutex)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2760
ret = _ctl_getiocinfo(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
277
memcpy(ioc->ctl_cmds.reply, mpi_reply, mpi_reply->MsgLength*4);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2772
ret = _ctl_compat_mpt_command(ioc, cmd, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
278
ioc->ctl_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2789
ret = _ctl_do_mpt_command(ioc, karg, &uarg->mf);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2795
ret = _ctl_eventquery(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2799
ret = _ctl_eventenable(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2802
ret = _ctl_eventreport(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2806
ret = _ctl_do_reset(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2810
ret = _ctl_btdh_mapping(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2814
ret = _ctl_diag_register(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2818
ret = _ctl_diag_unregister(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2822
ret = _ctl_diag_query(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2826
ret = _ctl_diag_release(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2830
ret = _ctl_diag_read_buffer(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2834
ret = _ctl_addnl_diag_query(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2838
ret = _ctl_enable_diag_sbr_reload(ioc, arg);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2841
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2842
ioc_info(ioc, "unsupported ioctl opcode(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2847
mutex_unlock(&ioc->ctl_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2849
mutex_unlock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2863
struct MPT3SAS_ADAPTER *ioc = NULL;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2868
list_for_each_entry(ioc, &mpt3sas_ioc_list, list) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2869
if (ioc->facts.IOCCapabilities & MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2872
return ioc;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
288
sense_data = mpt3sas_base_get_sense_buffer(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2892
struct MPT3SAS_ADAPTER *ioc = NULL;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2896
list_for_each_entry(ioc, &mpt3sas_ioc_list, list)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2897
if (ioc->facts.IOCCapabilities & MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
290
memcpy(ioc->ctl_cmds.sense, sense_data, sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2915
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2932
ioc = _ctl_get_mpt_mctp_passthru_adapter(command->dev_index);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2933
if (!ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2936
mutex_lock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2937
if (ioc->shost_recovery ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2938
ioc->pci_error_recovery || ioc->is_driver_loading ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2939
ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2945
if (mutex_lock_interruptible(&ioc->ctl_cmds.mutex)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2950
if (ioc->ctl_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2951
ioc_err(ioc, "%s: ctl_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2956
ret = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2962
ioc_err(ioc, "%s: Invalid request received, Function 0x%x\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2969
smid = ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT + 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2971
ioc->ctl_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2972
memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2973
request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2974
memset(request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2976
ioc->ctl_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2982
data_out = dma_alloc_coherent(&ioc->pdev->dev, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2986
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2994
data_in = dma_alloc_coherent(&ioc->pdev->dev, data_in_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
2998
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3005
init_completion(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3009
_ctl_send_mctp_passthru_req(ioc, mctp_passthru_req, psge, data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3016
wait_for_completion_timeout(&ioc->ctl_cmds.done, timeout*HZ);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3017
if (!(ioc->ctl_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3018
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3019
ioc->ctl_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
302
sense_data = mpt3sas_base_get_sense_buffer(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
303
memcpy(ioc->ctl_cmds.sense, sense_data, sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3030
sz = min_t(u32, command->max_reply_bytes, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3031
memcpy(command->reply_frame_buf_ptr, ioc->ctl_cmds.reply, sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3037
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3043
dma_free_coherent(&ioc->pdev->dev, data_in_sz, data_in,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3047
dma_free_coherent(&ioc->pdev->dev, data_out_sz, data_out,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3050
ioc->ctl_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3053
mutex_unlock(&ioc->ctl_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3056
mutex_unlock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
307
_ctl_display_some_debug(ioc, smid, "ctl_done", mpi_reply);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
308
ioc->ctl_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
309
complete(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3150
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3153
(ioc->facts.FWVersion.Word & 0xFF000000) >> 24,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3154
(ioc->facts.FWVersion.Word & 0x00FF0000) >> 16,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3155
(ioc->facts.FWVersion.Word & 0x0000FF00) >> 8,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3156
ioc->facts.FWVersion.Word & 0x000000FF);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3173
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3175
u32 version = le32_to_cpu(ioc->bios_pg3.BiosVersion);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3198
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3201
ioc->facts.MsgVersion, ioc->facts.HeaderVersion >> 8);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3218
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3220
return snprintf(buf, 16, "%s\n", ioc->manu_pg0.ChipName);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3237
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
324
_ctl_check_event_type(struct MPT3SAS_ADAPTER *ioc, u16 event)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3240
le32_to_cpu(ioc->iounit_pg0.NvdataVersionPersistent.Word));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3257
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3260
le32_to_cpu(ioc->iounit_pg0.NvdataVersionDefault.Word));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3277
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3279
return snprintf(buf, 16, "%s\n", ioc->manu_pg0.BoardName);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
329
if (event >= 128 || !event || !ioc->event_log)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3296
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3298
return snprintf(buf, 16, "%s\n", ioc->manu_pg0.BoardAssembly);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3315
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3317
return snprintf(buf, 16, "%s\n", ioc->manu_pg0.BoardTracerNumber);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3337
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3339
return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->io_missing_delay);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3359
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
336
return desired_event & ioc->event_type[i];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3361
return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->device_missing_delay);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3380
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3382
return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->facts.RequestCredit);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3402
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3405
(unsigned long long)ioc->sas_hba.sas_address);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3422
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3424
return snprintf(buf, PAGE_SIZE, "%08xh\n", ioc->logging_level);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3431
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3437
ioc->logging_level = val;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3438
ioc_info(ioc, "logging_level=%08xh\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3439
ioc->logging_level);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
345
mpt3sas_ctl_add_to_event_log(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3458
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3460
return snprintf(buf, PAGE_SIZE, "%d\n", ioc->fwfault_debug);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3467
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3473
ioc->fwfault_debug = val;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3474
ioc_info(ioc, "fwfault_debug=%d\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3475
ioc->fwfault_debug);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3495
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3497
return snprintf(buf, PAGE_SIZE, "%d\n", ioc->ioc_reset_count);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3517
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3519
if ((ioc->facts.IOCCapabilities &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3520
MPI2_IOCFACTS_CAPABILITY_MSI_X_INDEX) && ioc->msix_enable)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3521
reply_queue_count = ioc->reply_queue_count;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
354
if (!ioc->event_log)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3544
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3552
if (!ioc->is_warpdrive) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3553
ioc_err(ioc, "%s: BRM attribute is only for warpdrive\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3558
mutex_lock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3559
if (ioc->pci_error_recovery || ioc->remove_host)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3565
if (mpt3sas_config_get_iounit_pg3(ioc, &mpi_reply, &io_unit_pg3, sz) !=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3567
ioc_err(ioc, "%s: failed reading iounit_pg3\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3575
ioc_err(ioc, "%s: iounit_pg3 failed with ioc_status(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3582
ioc_err(ioc, "%s: iounit_pg3.GPIOCount less than 25 entries, detected (%d) entries\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
359
if (_ctl_check_event_type(ioc, event)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3593
mutex_unlock(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
362
i = ioc->event_context % MPT3SAS_CTL_EVENT_LOG_SIZE;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3621
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3625
if (!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3626
ioc_err(ioc, "%s: host_trace_buffer is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
363
event_log = ioc->event_log;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3631
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3633
ioc_err(ioc, "%s: host_trace_buffer is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3639
ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3646
ioc->ring_buffer_sz = size;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
365
event_log[i].context = ioc->event_context++;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3668
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3672
if (!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE]) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3673
ioc_err(ioc, "%s: host_trace_buffer is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3678
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3680
ioc_err(ioc, "%s: host_trace_buffer is not registered\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3685
if (ioc->ring_buffer_offset > ioc->ring_buffer_sz)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3688
size = ioc->ring_buffer_sz - ioc->ring_buffer_offset;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3690
request_data = ioc->diag_buffer[0] + ioc->ring_buffer_offset;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3700
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3706
ioc->ring_buffer_offset = val;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3729
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3731
if ((!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE]) ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3732
((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3735
else if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3747
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3753
if (ioc->shost_recovery || ioc->remove_host ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3754
ioc->pci_error_recovery || ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3762
if ((ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE]) &&
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3763
(ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3765
((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3769
ioc_info(ioc, "posting host trace buffers\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3772
if (ioc->manu_pg11.HostTraceBufferMaxSizeKB != 0 &&
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3773
ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE] != 0) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3776
ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE];
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3782
if ((ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE] != 0)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3784
(ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3786
dma_free_coherent(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3787
ioc->diag_buffer_sz[MPI2_DIAG_BUF_TYPE_TRACE],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3788
ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3789
ioc->diag_buffer_dma[MPI2_DIAG_BUF_TYPE_TRACE]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
379
(send_aen && !ioc->aen_event_read_flag)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3790
ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE] =
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3798
(ioc->hba_mpi_version_belonged == MPI2_VERSION) ?
drivers/scsi/mpt3sas/mpt3sas_ctl.c
380
ioc->aen_event_read_flag = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3800
ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3801
_ctl_diag_register_2(ioc, &diag_register);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3802
if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3804
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3807
if (ioc->hba_mpi_version_belonged != MPI2_VERSION)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3808
ioc->diag_buffer_status[
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3814
if (!ioc->diag_buffer[MPI2_DIAG_BUF_TYPE_TRACE])
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3816
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3819
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3822
ioc_info(ioc, "releasing host trace buffer\n");
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3823
ioc->htb_rel.buffer_rel_condition = MPT3_DIAG_BUFFER_REL_SYSFS;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3824
mpt3sas_send_diag_release(ioc, MPI2_DIAG_BUF_TYPE_TRACE,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3849
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3853
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3855
memcpy(buf, &ioc->diag_trigger_master, rc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3856
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3875
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3883
if (ioc->supports_trigger_pages) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3891
if (mpt3sas_config_update_driver_trigger_pg1(ioc, master_tg,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3899
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3900
memset(&ioc->diag_trigger_master, 0,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3902
memcpy(&ioc->diag_trigger_master, buf, rc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3903
ioc->diag_trigger_master.MasterData |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3905
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3924
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3928
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3930
memcpy(buf, &ioc->diag_trigger_event, rc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3931
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3950
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3957
if (ioc->supports_trigger_pages) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3965
if (mpt3sas_config_update_driver_trigger_pg2(ioc, event_tg,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3973
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3975
memset(&ioc->diag_trigger_event, 0,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3977
memcpy(&ioc->diag_trigger_event, buf, sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3978
if (ioc->diag_trigger_event.ValidEntries > NUM_VALID_ENTRIES)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3979
ioc->diag_trigger_event.ValidEntries = NUM_VALID_ENTRIES;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3980
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
3999
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4003
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4005
memcpy(buf, &ioc->diag_trigger_scsi, rc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4006
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
401
mpt3sas_ctl_event_callback(struct MPT3SAS_ADAPTER *ioc, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4024
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4031
if (ioc->supports_trigger_pages) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4039
if (mpt3sas_config_update_driver_trigger_pg3(ioc, scsi_tg,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4047
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4049
memset(&ioc->diag_trigger_scsi, 0, sizeof(ioc->diag_trigger_scsi));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4050
memcpy(&ioc->diag_trigger_scsi, buf, sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4051
if (ioc->diag_trigger_scsi.ValidEntries > NUM_VALID_ENTRIES)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4052
ioc->diag_trigger_scsi.ValidEntries = NUM_VALID_ENTRIES;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4053
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
406
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4072
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4076
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4078
memcpy(buf, &ioc->diag_trigger_mpi, rc);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4079
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
408
mpt3sas_ctl_add_to_event_log(ioc, mpi_reply);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4097
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4104
if (ioc->supports_trigger_pages) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4112
if (mpt3sas_config_update_driver_trigger_pg4(ioc, mpi_tg,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4120
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4121
memset(&ioc->diag_trigger_mpi, 0,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4122
sizeof(ioc->diag_trigger_mpi));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4123
memcpy(&ioc->diag_trigger_mpi, buf, sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4124
if (ioc->diag_trigger_mpi.ValidEntries > NUM_VALID_ENTRIES)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4125
ioc->diag_trigger_mpi.ValidEntries = NUM_VALID_ENTRIES;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4126
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4149
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4151
return snprintf(buf, PAGE_SIZE, "0x%08x\n", ioc->drv_support_bitmap);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4169
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4171
return snprintf(buf, PAGE_SIZE, "%d\n", ioc->enable_sdev_max_qd);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4191
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4204
ioc->enable_sdev_max_qd = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4205
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4216
mpt3sas_raid_device_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4238
qdepth = ioc->max_nvme_qd;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4241
ioc->max_wideport_qd : ioc->max_narrowport_qd;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4247
ioc->enable_sdev_max_qd = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4248
shost_for_each_device(sdev, ioc->shost)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
425
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
429
list_for_each_entry(ioc, &mpt3sas_ioc_list, list) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
430
if (ioc->id != ioc_number)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
435
version = ioc->hba_mpi_version_belonged;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4487
mpt3sas_ctl_release(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4493
if (!ioc->diag_buffer[i])
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4495
dma_free_coherent(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4496
ioc->diag_buffer_sz[i],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4497
ioc->diag_buffer[i],
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4498
ioc->diag_buffer_dma[i]);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4499
ioc->diag_buffer[i] = NULL;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4500
ioc->diag_buffer_status[i] = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
4503
kfree(ioc->event_log);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
451
*iocpp = ioc;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
465
void mpt3sas_ctl_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
470
dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_PRE_RESET\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
472
if (!(ioc->diag_buffer_status[i] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
475
if ((ioc->diag_buffer_status[i] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
482
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
485
ioc->htb_rel.buffer_rel_condition =
drivers/scsi/mpt3sas/mpt3sas_ctl.c
487
mpt3sas_send_diag_release(ioc, i, &issue_reset);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
497
void mpt3sas_ctl_clear_outstanding_ioctls(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
499
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
500
ioc_info(ioc, "%s: clear outstanding ioctl cmd\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
501
if (ioc->ctl_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
502
ioc->ctl_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
503
mpt3sas_base_free_smid(ioc, ioc->ctl_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
504
complete(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
514
void mpt3sas_ctl_reset_done_handler(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
518
dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_DONE_RESET\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
521
if (!(ioc->diag_buffer_status[i] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
524
if ((ioc->diag_buffer_status[i] &
drivers/scsi/mpt3sas/mpt3sas_ctl.c
527
ioc->diag_buffer_status[i] |=
drivers/scsi/mpt3sas/mpt3sas_ctl.c
555
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
561
list_for_each_entry(ioc, &mpt3sas_ioc_list, list) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
562
if (ioc->aen_event_read_flag) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
581
_ctl_set_task_mid(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command *karg,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
604
for (smid = ioc->scsiio_depth; smid && !found; smid--) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
608
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
632
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
633
ioc_info(ioc, "%s: handle(0x%04x), lun(%d), no active mid!!\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
636
tm_reply = ioc->ctl_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
643
sz = min_t(u32, karg->max_reply_bytes, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
644
if (copy_to_user(karg->reply_frame_buf_ptr, ioc->ctl_cmds.reply,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
651
dctlprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
652
ioc_info(ioc, "%s: handle(0x%04x), lun(%d), task_mid(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
672
struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
682
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, 0, 0);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
684
psge += ioc->sge_size_ieee;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
687
ioc->build_sg(ioc, psge, 0, 0, data_in_dma, data_in_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
689
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
699
_ctl_do_mpt_command(struct MPT3SAS_ADAPTER *ioc, struct mpt3_ioctl_command karg,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
723
if (ioc->ctl_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
724
ioc_err(ioc, "%s: ctl_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
729
ret = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
733
mpi_request = kzalloc(ioc->request_sz, GFP_KERNEL);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
735
ioc_err(ioc, "%s: failed obtaining a memory for mpi_request\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
742
if (karg.data_sge_offset * 4 > ioc->request_sz ||
drivers/scsi/mpt3sas/mpt3sas_ctl.c
757
smid = mpt3sas_base_get_smid_hpr(ioc, ioc->ctl_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
759
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
765
smid = ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT + 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
769
ioc->ctl_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
770
memset(ioc->ctl_cmds.reply, 0, ioc->reply_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
771
request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
772
memset(request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
774
ioc->ctl_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
786
ioc->facts.MaxDevHandle)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
788
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
795
data_out = dma_alloc_coherent(&ioc->pdev->dev, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
801
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
809
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
815
data_in = dma_alloc_coherent(&ioc->pdev->dev, data_in_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
821
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
829
_ctl_display_some_debug(ioc, smid, "ctl_request", NULL);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
831
init_completion(&ioc->ctl_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
838
if (!(ioc->facts.IOCCapabilities & MPI26_IOCFACTS_CAPABILITY_MCTP_PASSTHRU)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
839
ioc_err(ioc, "%s: MCTP Passthrough request not supported\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
841
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
846
_ctl_send_mctp_passthru_req(ioc, mctp_passthru_req, psge, data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
853
if (!ioc->pcie_sg_lookup) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
854
dtmprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
858
if (ioc->logging_level & MPT_DEBUG_TM)
drivers/scsi/mpt3sas/mpt3sas_ctl.c
860
ioc->request_sz/4);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
861
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
875
cpu_to_le64(ioc->sense_dma & 0xFFFFFFFF00000000UL);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
878
mpt3sas_base_get_sense_buffer_dma(ioc, smid)));
drivers/scsi/mpt3sas/mpt3sas_ctl.c
881
memset(ioc->ctl_cmds.sense, 0, NVME_ERROR_RESPONSE_SIZE);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
882
ioc->build_nvme_prp(ioc, smid, nvme_encap_request,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
884
if (test_bit(device_handle, ioc->device_remove_in_progress)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
885
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
886
ioc_info(ioc, "handle(0x%04x): ioctl failed due to device removal in progress\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
888
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
892
mpt3sas_base_put_smid_nvme_encap(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
902
mpt3sas_base_get_sense_buffer_dma(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
903
memset(ioc->ctl_cmds.sense, 0, SCSI_SENSE_BUFFERSIZE);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
904
if (test_bit(device_handle, ioc->device_remove_in_progress)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
905
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
906
ioc_info(ioc, "handle(0x%04x) :ioctl failed due to device removal in progress\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
908
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
912
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
915
ioc->put_smid_scsi_io(ioc, smid, device_handle);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
917
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
925
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
926
ioc_info(ioc, "TASK_MGMT: handle(0x%04x), task_type(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
929
ioc->got_task_abort_from_ioctl = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
93
_ctl_display_some_debug(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
934
if (_ctl_set_task_mid(ioc, &karg, tm_request)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
935
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
936
ioc->got_task_abort_from_ioctl = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
940
ioc->got_task_abort_from_ioctl = 0;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
942
if (test_bit(device_handle, ioc->device_remove_in_progress)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
943
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
944
ioc_info(ioc, "handle(0x%04x) :ioctl failed due to device removal in progress\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
946
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
950
mpt3sas_scsih_set_tm_flag(ioc, le16_to_cpu(
drivers/scsi/mpt3sas/mpt3sas_ctl.c
952
ioc->build_sg_mpi(ioc, psge, data_out_dma, data_out_sz,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
954
ioc->put_smid_hi_priority(ioc, smid, 0);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
963
if (!ioc->multipath_on_hba) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
974
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
982
ioc->ioc_link_reset_in_progress = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
983
ioc->ignore_loginfos = 1;
drivers/scsi/mpt3sas/mpt3sas_ctl.c
985
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, data_in_dma,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
987
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_ctl.c
99
if (!(ioc->logging_level & MPT_DEBUG_IOCTL))
drivers/scsi/mpt3sas/mpt3sas_ctl.c
992
if (test_bit(device_handle, ioc->device_remove_in_progress)) {
drivers/scsi/mpt3sas/mpt3sas_ctl.c
993
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_ctl.c
994
ioc_info(ioc, "handle(0x%04x) :ioctl failed due to device removal in progress\n",
drivers/scsi/mpt3sas/mpt3sas_ctl.c
996
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
119
mpt3sas_setup_debugfs(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
123
snprintf(name, sizeof(name), "scsi_host%d", ioc->shost->host_no);
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
124
if (!ioc->debugfs_root) {
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
125
ioc->debugfs_root =
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
127
if (!ioc->debugfs_root) {
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
128
dev_err(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
135
ioc->ioc_dump = debugfs_create_file(name, 0444,
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
136
ioc->debugfs_root, ioc, &mpt3sas_debugfs_iocdump_fops);
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
137
if (!ioc->ioc_dump) {
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
138
dev_err(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
140
debugfs_remove(ioc->debugfs_root);
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
145
debugfs_create_u8(name, 0444, ioc->debugfs_root, &ioc->shost_recovery);
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
153
void mpt3sas_destroy_debugfs(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
155
debugfs_remove_recursive(ioc->debugfs_root);
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
58
struct MPT3SAS_ADAPTER *ioc = inode->i_private;
drivers/scsi/mpt3sas/mpt3sas_debugfs.c
65
debug->buf = (void *)ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10006
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10009
if (ioc->broadcast_aen_pending) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10010
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10011
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10014
ioc->broadcast_aen_pending = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10019
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1002
_scsih_display_enclosure_chassis_info(ioc, sas_device, NULL, NULL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10022
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10023
ioc_info(ioc, "%s - exit, query_count = %d termination_count = %d\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10026
ioc->broadcast_aen_busy = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10027
if (!ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10028
_scsih_ublock_io_all_device(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10029
mutex_unlock(&ioc->tm_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10039
_scsih_sas_discovery_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10045
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10046
ioc_info(ioc, "discovery event: (%s)",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10056
!ioc->sas_hba.num_phys) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10057
if (disable_discovery > 0 && ioc->shost_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10059
while (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10062
_scsih_sas_host_add(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10074
_scsih_sas_device_discovery_error_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1008
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10082
ioc_warn(ioc, "SMP command sent to the expander (handle:0x%04x, sas_address:0x%016llx, physical_port:0x%02x) has failed\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10088
ioc_warn(ioc, "SMP command sent to the expander (handle:0x%04x, sas_address:0x%016llx, physical_port:0x%02x) has timed out\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10105
_scsih_pcie_enumeration_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10111
if (!(ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10114
ioc_info(ioc, "pcie enumeration event: (%s) Flag 0x%02x",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1013
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10133
_scsih_ir_fastpath(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 phys_disk_num)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10143
if (ioc->hba_mpi_version_belonged == MPI2_VERSION)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10146
mutex_lock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10148
if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10149
ioc_err(ioc, "%s: scsih_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10153
ioc->scsih_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10155
smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10157
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10158
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10163
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10164
ioc->scsih_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10171
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10172
ioc_info(ioc, "IR RAID_ACTION: turning fast path on for handle(0x%04x), phys_disk_num (0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10175
init_completion(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10176
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10177
wait_for_completion_timeout(&ioc->scsih_cmds.done, 10*HZ);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10179
if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10180
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10181
ioc->scsih_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10187
if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10189
mpi_reply = ioc->scsih_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10197
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10198
ioc_info(ioc, "IR RAID_ACTION: failed: ioc_status(0x%04x), loginfo(0x%08x)!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10202
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10203
ioc_info(ioc, "IR RAID_ACTION: completed successfully\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10207
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10208
mutex_unlock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10211
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1023
_scsih_device_remove_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10237
_scsih_sas_volume_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10246
mpt3sas_config_get_volume_wwid(ioc, handle, &wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10248
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10253
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10254
raid_device = _scsih_raid_device_find_by_wwid(ioc, wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10255
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10262
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10267
raid_device->id = ioc->sas_id++;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10271
_scsih_raid_device_add(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10272
if (!ioc->wait_for_discovery_to_complete) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10273
rc = scsi_add_device(ioc->shost, RAID_CHANNEL,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10276
_scsih_raid_device_remove(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10278
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10279
_scsih_determine_boot_device(ioc, raid_device, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1028
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10280
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10291
_scsih_sas_volume_delete(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10298
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10299
raid_device = mpt3sas_raid_device_find_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10306
ioc_info(ioc, "removing handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1031
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10311
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1032
sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10323
_scsih_sas_pd_expose(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10332
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10333
sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10337
clear_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10345
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10363
_scsih_sas_pd_hide(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1037
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10374
mpt3sas_config_get_volume_handle(ioc, handle, &volume_handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10376
mpt3sas_config_get_volume_wwid(ioc, volume_handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10379
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10380
sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10382
set_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1039
_scsih_remove_device(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10392
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10397
_scsih_ir_fastpath(ioc, handle, element->PhysDiskNum);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10412
_scsih_sas_pd_delete(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10417
_scsih_device_remove_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10427
_scsih_sas_pd_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10438
set_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10440
sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10442
_scsih_ir_fastpath(ioc, handle, element->PhysDiskNum);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10447
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10449
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10457
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10463
if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10464
mpt3sas_transport_update_links(ioc, sas_address, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10466
mpt3sas_get_port_by_id(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10469
_scsih_ir_fastpath(ioc, handle, element->PhysDiskNum);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10470
_scsih_add_device(ioc, handle, 0, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10480
_scsih_sas_ir_config_change_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10490
ioc_info(ioc, "raid config change: (%s), elements(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1054
mpt3sas_device_remove_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10558
_scsih_sas_ir_config_change_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10568
if ((ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10569
(!ioc->hide_ir_msg))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10570
_scsih_sas_ir_config_change_event_debug(ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10576
if (ioc->shost_recovery &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10577
ioc->hba_mpi_version_belonged != MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10580
_scsih_ir_fastpath(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10593
_scsih_sas_volume_add(ioc, element);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10598
_scsih_sas_volume_delete(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1060
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10602
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10603
_scsih_sas_pd_hide(ioc, element);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10606
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10607
_scsih_sas_pd_expose(ioc, element);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10610
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10611
_scsih_sas_pd_add(ioc, element);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10614
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10615
_scsih_sas_pd_delete(ioc, element);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10628
_scsih_sas_ir_volume_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1063
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1064
sas_device = __mpt3sas_get_sdev_by_addr(ioc, sas_address, port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10640
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10648
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10649
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10650
ioc_info(ioc, "%s: handle(0x%04x), old(0x%08x), new(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10657
_scsih_sas_volume_delete(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10664
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10665
raid_device = mpt3sas_raid_device_find_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10666
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10671
mpt3sas_config_get_volume_wwid(ioc, handle, &wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10673
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10680
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10685
raid_device->id = ioc->sas_id++;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10689
_scsih_raid_device_add(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1069
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10690
rc = scsi_add_device(ioc->shost, RAID_CHANNEL,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10693
_scsih_raid_device_remove(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10709
_scsih_sas_ir_physical_disk_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1071
_scsih_remove_device(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10722
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10731
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10732
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10733
ioc_info(ioc, "%s: handle(0x%04x), old(0x%08x), new(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10745
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10746
set_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10748
sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10754
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10757
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10765
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10771
if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10772
mpt3sas_transport_update_links(ioc, sas_address, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10774
mpt3sas_get_port_by_id(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10777
_scsih_add_device(ioc, handle, 0, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10796
_scsih_sas_ir_operation_status_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10822
ioc_info(ioc, "raid operational status: (%s)\thandle(0x%04x), percent complete(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10835
_scsih_sas_ir_operation_status_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10845
if ((ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10846
(!ioc->hide_ir_msg))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10847
_scsih_sas_ir_operation_status_event_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1085
_scsih_sas_device_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10853
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10855
raid_device = mpt3sas_raid_device_find_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10859
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10871
_scsih_prep_device_scan(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10876
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10889
_scsih_update_device_qdepth(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10897
ioc_info(ioc, "Update devices with firmware reported queue depth\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10898
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1090
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10904
qdepth = ioc->max_nvme_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10908
ioc->max_wideport_qd : ioc->max_narrowport_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1091
ioc_info(ioc, "%s: handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10911
qdepth = ioc->max_sata_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10928
_scsih_mark_responding_sas_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10937
ioc, sas_device_pg0->PhysicalPort, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10941
mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10944
ioc_info(ioc, "Enclosure handle(0x%04x) doesn't match with enclosure device!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10947
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
10948
list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1095
dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1098
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1100
list_add_tail(&sas_device->list, &ioc->sas_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1101
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11016
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11025
_scsih_create_enclosure_list_after_reset(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1103
if (ioc->hide_drives) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11033
mpt3sas_free_enclosure_list(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1104
clear_bit(sas_device->handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11041
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11045
rc = mpt3sas_config_get_enclosure_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11056
&ioc->enclosure_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11070
_scsih_search_responding_sas_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11078
ioc_info(ioc, "search for end-devices: start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1108
if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11080
if (list_empty(&ioc->sas_device_list))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11084
while (!(mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11095
_scsih_mark_responding_sas_device(ioc, &sas_device_pg0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11099
ioc_info(ioc, "search for end-devices: complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1110
_scsih_sas_device_remove(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11111
_scsih_mark_responding_pcie_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11119
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11120
list_for_each_entry(pcie_device, &ioc->pcie_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11150
(ioc->hba_mpi_version_belonged != MPI2_VERSION)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1117
if (!ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11175
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1118
mpt3sas_transport_port_remove(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11186
_scsih_search_responding_pcie_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11194
ioc_info(ioc, "search for end-devices: start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11196
if (list_empty(&ioc->pcie_device_list))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11200
while (!(mpt3sas_config_get_pcie_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11206
ioc_info(ioc, "\tbreak from %s: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11215
_scsih_mark_responding_pcie_device(ioc, &pcie_device_pg0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11218
ioc_info(ioc, "search for PCIe end-devices: complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1122
_scsih_sas_device_remove(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11231
_scsih_mark_responding_raid_device(struct MPT3SAS_ADAPTER *ioc, u64 wwid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11239
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11240
list_for_each_entry(raid_device, &ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11249
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1125
clear_bit(sas_device->handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11259
mpt3sas_init_warpdrive_properties(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11260
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11262
spin_unlock_irqrestore(&ioc->raid_device_lock,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11271
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11275
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11286
_scsih_search_responding_raid_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11296
if (!ioc->ir_firmware)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11299
ioc_info(ioc, "search for raid volumes: start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11301
if (list_empty(&ioc->raid_device_list))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11305
while (!(mpt3sas_config_get_raid_volume_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11313
if (mpt3sas_config_get_raid_volume_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11321
_scsih_mark_responding_raid_device(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11326
if (!ioc->is_warpdrive) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11328
memset(ioc->pd_handles, 0, ioc->pd_handles_sz);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11329
while (!(mpt3sas_config_get_phys_disk_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11338
set_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11342
ioc_info(ioc, "search for responding raid volumes: complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11354
_scsih_mark_responding_expander(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11365
ioc, expander_pg0->PhysicalPort, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11369
mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1137
_scsih_sas_device_init_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11372
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11373
list_for_each_entry(sas_expander, &ioc->sas_expander_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11399
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11410
_scsih_search_responding_expanders(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11419
ioc_info(ioc, "search for expanders: start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1142
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11421
if (list_empty(&ioc->sas_expander_list))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11425
while (!(mpt3sas_config_get_expander_pg0(ioc, &mpi_reply, &expander_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1143
ioc_info(ioc, "%s: handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11439
(ioc->multipath_on_hba ?
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11441
_scsih_mark_responding_expander(ioc, &expander_pg0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11445
ioc_info(ioc, "search for expanders: complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11453
_scsih_remove_unresponding_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11463
ioc_info(ioc, "removing unresponding devices: start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11466
ioc_info(ioc, "removing unresponding devices: end-devices\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1147
dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11471
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11478
&ioc->sas_device_init_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11484
&ioc->sas_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11490
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11496
_scsih_remove_device(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1150
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11501
ioc_info(ioc, "Removing unresponding devices: pcie end-devices\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11503
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11509
&ioc->pcie_device_init_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11515
&ioc->pcie_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1152
list_add_tail(&sas_device->list, &ioc->sas_device_init_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11521
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11524
_scsih_pcie_device_remove_from_sml(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1153
_scsih_determine_boot_device(ioc, sas_device, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11530
if (ioc->ir_firmware) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11531
ioc_info(ioc, "removing unresponding devices: volumes\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11533
&ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11535
_scsih_sas_volume_delete(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1154
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11543
ioc_info(ioc, "removing unresponding devices: expanders\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11544
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11547
&ioc->sas_expander_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11553
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11556
_scsih_expander_node_remove(ioc, sas_expander);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11559
ioc_info(ioc, "removing unresponding devices: complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11562
_scsih_ublock_io_all_device(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11566
_scsih_refresh_expander_links(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11574
if ((mpt3sas_config_get_expander_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11576
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11581
mpt3sas_transport_update_links(ioc, sas_expander->sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1159
__mpt3sas_get_pdev_by_wwid(struct MPT3SAS_ADAPTER *ioc, u64 wwid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11593
_scsih_scan_for_devices_after_reset(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11614
ioc_info(ioc, "scan devices: start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11616
_scsih_sas_host_refresh(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11618
ioc_info(ioc, "\tscan devices: expanders start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11622
while (!(mpt3sas_config_get_expander_pg0(ioc, &mpi_reply, &expander_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11627
ioc_info(ioc, "\tbreak from expander scan: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1163
assert_spin_locked(&ioc->pcie_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11632
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11635
ioc, le64_to_cpu(expander_pg0.SASAddress),
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11636
mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11637
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11639
_scsih_refresh_expander_links(ioc, expander_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11642
ioc_info(ioc, "\tBEFORE adding expander: handle (0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11645
_scsih_expander_add(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11646
ioc_info(ioc, "\tAFTER adding expander: handle (0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1165
list_for_each_entry(pcie_device, &ioc->pcie_device_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11652
ioc_info(ioc, "\tscan devices: expanders complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11654
if (!ioc->ir_firmware)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11657
ioc_info(ioc, "\tscan devices: phys disk start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11661
while (!(mpt3sas_config_get_phys_disk_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11667
ioc_info(ioc, "\tbreak from phys disk scan: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11673
sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11678
if (mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11685
ioc_info(ioc, "\tbreak from phys disk scan ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1169
list_for_each_entry(pcie_device, &ioc->pcie_device_init_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11690
if (!_scsih_get_sas_address(ioc, parent_handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11692
ioc_info(ioc, "\tBEFORE adding phys disk: handle (0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11696
mpt3sas_transport_update_links(ioc, sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11699
mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11700
set_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11706
while (_scsih_add_device(ioc, handle, retry_count++,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11710
ioc_info(ioc, "\tAFTER adding phys disk: handle (0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11716
ioc_info(ioc, "\tscan devices: phys disk complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11718
ioc_info(ioc, "\tscan devices: volumes start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11722
while (!(mpt3sas_config_get_raid_volume_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11727
ioc_info(ioc, "\tbreak from volume scan: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11732
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11733
raid_device = _scsih_raid_device_find_by_wwid(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11735
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11738
if (mpt3sas_config_get_raid_volume_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11745
ioc_info(ioc, "\tbreak from volume scan: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11755
ioc_info(ioc, "\tBEFORE adding volume: handle (0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11757
_scsih_sas_volume_add(ioc, &element);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11758
ioc_info(ioc, "\tAFTER adding volume: handle (0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11763
ioc_info(ioc, "\tscan devices: volumes complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11767
ioc_info(ioc, "\tscan devices: end devices start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11771
while (!(mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11777
ioc_info(ioc, "\tbreak from end device scan: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11786
sas_device = mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11788
mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11794
if (!_scsih_get_sas_address(ioc, parent_handle, &sas_address)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11795
ioc_info(ioc, "\tBEFORE adding end device: handle (0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11798
mpt3sas_transport_update_links(ioc, sas_address, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11800
mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11806
while (_scsih_add_device(ioc, handle, retry_count++,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11810
ioc_info(ioc, "\tAFTER adding end device: handle (0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11815
ioc_info(ioc, "\tscan devices: end devices complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11816
ioc_info(ioc, "\tscan devices: pcie end devices start\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11820
while (!(mpt3sas_config_get_pcie_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11826
ioc_info(ioc, "\tbreak from pcie end device scan: ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11834
pcie_device = mpt3sas_get_pdev_by_wwid(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11842
while (_scsih_pcie_add_device(ioc, handle, retry_count++))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11845
ioc_info(ioc, "\tAFTER adding pcie end device: handle (0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11849
ioc_info(ioc, "\tpcie devices: pcie end devices complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11850
ioc_info(ioc, "scan devices: complete\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11859
void mpt3sas_scsih_pre_reset_handler(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11861
dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_PRE_RESET\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11872
mpt3sas_scsih_clear_outstanding_scsi_tm_commands(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11874
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11875
ioc_info(ioc, "%s: clear outstanding scsi & tm cmds\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11876
if (ioc->scsih_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11877
ioc->scsih_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11878
mpt3sas_base_free_smid(ioc, ioc->scsih_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11879
complete(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11881
if (ioc->tm_cmds.status & MPT3_CMD_PENDING) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11882
ioc->tm_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11883
mpt3sas_base_free_smid(ioc, ioc->tm_cmds.smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11884
complete(&ioc->tm_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11887
memset(ioc->pend_os_device_add, 0, ioc->pend_os_device_add_sz);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11888
memset(ioc->device_remove_in_progress, 0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11889
ioc->device_remove_in_progress_sz);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11890
_scsih_fw_event_cleanup_queue(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11891
_scsih_flush_running_cmds(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11901
mpt3sas_scsih_reset_done_handler(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11903
dtmprintk(ioc, ioc_info(ioc, "%s: MPT3_IOC_DONE_RESET\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11904
if (!(disable_discovery > 0 && !ioc->sas_hba.num_phys)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11905
if (ioc->multipath_on_hba) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11906
_scsih_sas_port_refresh(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11907
_scsih_update_vphys_after_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11909
_scsih_prep_device_scan(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11910
_scsih_create_enclosure_list_after_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11911
_scsih_search_responding_sas_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11912
_scsih_search_responding_pcie_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11913
_scsih_search_responding_raid_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11914
_scsih_search_responding_expanders(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11915
_scsih_error_recovery_delete_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1192
mpt3sas_get_pdev_by_wwid(struct MPT3SAS_ADAPTER *ioc, u64 wwid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11926
_mpt3sas_fw_work(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work *fw_event)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11928
ioc->current_event = fw_event;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11929
_scsih_fw_event_del_from_list(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11932
if (ioc->remove_host || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11934
ioc->current_event = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11940
mpt3sas_process_trigger_data(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11945
while (scsi_host_in_recovery(ioc->shost) ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11946
ioc->shost_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11951
if (ioc->remove_host || ioc->fw_events_cleanup)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11955
_scsih_remove_unresponding_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11956
_scsih_del_dirty_vphy(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11957
_scsih_del_dirty_port_entries(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11958
if (ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11959
_scsih_update_device_qdepth(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11960
_scsih_scan_for_devices_after_reset(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1197
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11971
if (ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11972
_scsih_complete_devices_scanning(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11973
_scsih_set_nvme_max_shutdown_latency(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11976
ioc->start_scan = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11978
mpt3sas_base_update_missing_delay(ioc, missing_delay[0],
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1198
pcie_device = __mpt3sas_get_pdev_by_wwid(ioc, wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11980
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11981
ioc_info(ioc, "port enable: complete from worker thread\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11984
_scsih_turn_on_pfa_led(ioc, fw_event->device_handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11987
if (_scsih_sas_topology_change_event(ioc, fw_event)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11988
_scsih_fw_event_requeue(ioc, fw_event, 1000);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11989
ioc->current_event = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1199
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11994
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
11995
_scsih_sas_device_status_change_event_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12000
_scsih_sas_discovery_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12003
_scsih_sas_device_discovery_error_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12006
_scsih_sas_broadcast_primitive_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12009
_scsih_sas_enclosure_dev_status_change_event(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12013
_scsih_sas_ir_config_change_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12016
_scsih_sas_ir_volume_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12019
_scsih_sas_ir_physical_disk_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12022
_scsih_sas_ir_operation_status_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12025
_scsih_pcie_device_status_change_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12028
_scsih_pcie_enumeration_event(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12031
if (_scsih_pcie_topology_change_event(ioc, fw_event)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12032
_scsih_fw_event_requeue(ioc, fw_event, 1000);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12033
ioc->current_event = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12040
ioc->current_event = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12057
_mpt3sas_fw_work(fw_event->ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1206
__mpt3sas_get_pdev_by_idchannel(struct MPT3SAS_ADAPTER *ioc, int id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12066
_mpt3sas_fw_work(fw_event->ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12083
mpt3sas_scsih_event_callback(struct MPT3SAS_ADAPTER *ioc, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12093
if (ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12096
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12099
ioc_err(ioc, "mpi_reply not valid at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12107
mpt3sas_trigger_event(ioc, event, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1211
assert_spin_locked(&ioc->pcie_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12121
if (ioc->broadcast_aen_busy) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12122
ioc->broadcast_aen_pending++;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12125
ioc->broadcast_aen_busy = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1213
list_for_each_entry(pcie_device, &ioc->pcie_device_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12130
_scsih_check_topo_delete_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12141
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12145
_scsih_check_pcie_topo_remove_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12148
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12152
_scsih_check_ir_config_unhide_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12157
_scsih_check_volume_delete_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12166
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1217
list_for_each_entry(pcie_device, &ioc->pcie_device_init_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12179
ioc_warn(ioc, "WarpDrive Warning: IO Throttling has occurred in the WarpDrive subsystem. Check WarpDrive documentation for additional details.\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12182
ioc_warn(ioc, "WarpDrive Warning: Program/Erase Cycles for the WarpDrive subsystem in degraded range. Check WarpDrive documentation for additional details.\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12185
ioc_err(ioc, "WarpDrive Fatal Error: There are no Program/Erase Cycles for the WarpDrive subsystem. The storage device will be in read-only mode. Check WarpDrive documentation for additional details.\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12188
ioc_err(ioc, "WarpDrive Fatal Error: The Backup Rail Monitor has failed on the WarpDrive subsystem. Check WarpDrive documentation for additional details.\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12195
_scsih_sas_device_status_change_event(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12209
_scsih_temp_threshold_events(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12218
ioc_notice(ioc, "Currently an active cable with ReceptacleID %d\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12228
ioc_notice(ioc, "Currently a cable with ReceptacleID %d\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12244
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12257
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12271
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12278
fw_event->ioc = ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12282
_scsih_fw_event_add(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1229
__mpt3sas_get_pdev_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12296
_scsih_expander_node_remove(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12306
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12310
mpt3sas_device_remove_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12317
mpt3sas_expander_remove(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12324
mpt3sas_transport_port_remove(ioc, sas_expander->sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12327
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1233
assert_spin_locked(&ioc->pcie_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12333
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12335
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1235
list_for_each_entry(pcie_device, &ioc->pcie_device_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12350
_scsih_nvme_shutdown(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12357
if (list_empty(&ioc->pcie_device_list))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12360
mutex_lock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12362
if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12363
ioc_err(ioc, "%s: scsih_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12367
ioc->scsih_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12369
smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12371
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12373
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12377
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12378
ioc->scsih_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12383
init_completion(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12384
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12386
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12388
ioc->max_shutdown_latency);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12389
wait_for_completion_timeout(&ioc->scsih_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1239
list_for_each_entry(pcie_device, &ioc->pcie_device_init_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12390
ioc->max_shutdown_latency*HZ);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12392
if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12393
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12397
if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12398
mpi_reply = ioc->scsih_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12399
ioc_info(ioc, "Io Unit Control shutdown (complete):"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12405
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12406
mutex_unlock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12418
_scsih_ir_shutdown(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12425
if (!ioc->ir_firmware)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12429
if (list_empty(&ioc->raid_device_list))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12432
mutex_lock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12434
if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12435
ioc_err(ioc, "%s: scsih_cmd in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12438
ioc->scsih_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12440
smid = mpt3sas_base_get_smid(ioc, ioc->scsih_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12442
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12443
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12447
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12448
ioc->scsih_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12454
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12455
ioc_info(ioc, "IR shutdown (sending)\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12456
init_completion(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12457
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12458
wait_for_completion_timeout(&ioc->scsih_cmds.done, 10*HZ);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12460
if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12461
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12465
if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12466
mpi_reply = ioc->scsih_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12467
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12468
ioc_info(ioc, "IR shutdown (complete): ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12474
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12475
mutex_unlock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12489
struct Scsi_Host **shost, struct MPT3SAS_ADAPTER **ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12497
*ioc = shost_priv(*shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12498
if (*ioc == NULL) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12515
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12525
if (_scsih_get_shost_and_ioc(pdev, &shost, &ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12528
ioc->remove_host = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12531
mpt3sas_base_pause_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12532
_scsih_flush_running_cmds(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12535
_scsih_fw_event_cleanup_queue(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12537
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12538
wq = ioc->firmware_event_thread;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12539
ioc->firmware_event_thread = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12540
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12547
if (ioc->is_aero_ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12548
mpt3sas_config_set_ioc_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12549
&ioc->ioc_pg1_copy);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12551
_scsih_ir_shutdown(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12552
mpt3sas_destroy_debugfs(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12554
list_for_each_entry_safe(raid_device, next, &ioc->raid_device_list,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12562
ioc_info(ioc, "removing handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12564
_scsih_raid_device_remove(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12566
list_for_each_entry_safe(pcie_device, pcienext, &ioc->pcie_device_list,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12568
_scsih_pcie_device_remove_from_sml(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12575
&ioc->sas_hba.sas_port_list, port_list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12578
mpt3sas_device_remove_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12585
mpt3sas_expander_remove(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12591
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12597
if (ioc->sas_hba.num_phys) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12598
kfree(ioc->sas_hba.phy);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12599
ioc->sas_hba.phy = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12600
ioc->sas_hba.num_phys = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12603
mpt3sas_base_detach(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12604
mpt3sas_ctl_release(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12606
list_del(&ioc->list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12619
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12624
if (_scsih_get_shost_and_ioc(pdev, &shost, &ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12627
ioc->remove_host = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1263
mpt3sas_get_pdev_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12630
mpt3sas_base_pause_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12631
_scsih_flush_running_cmds(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12634
_scsih_fw_event_cleanup_queue(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12636
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12637
wq = ioc->firmware_event_thread;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12638
ioc->firmware_event_thread = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12639
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12646
if (ioc->is_aero_ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12647
mpt3sas_config_set_ioc_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12648
&ioc->ioc_pg1_copy);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12650
_scsih_ir_shutdown(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12651
_scsih_nvme_shutdown(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12652
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12653
mpt3sas_base_stop_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12654
ioc->shost_recovery = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12655
mpt3sas_base_make_ioc_ready(ioc, SOFT_RESET);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12656
ioc->shost_recovery = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12657
mpt3sas_base_free_irq(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12658
mpt3sas_base_disable_msix(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12671
_scsih_probe_boot_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1268
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12687
if (!ioc->bios_pg3.BiosVersion)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1269
pcie_device = __mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12691
if (ioc->req_boot_device.device) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12692
device = ioc->req_boot_device.device;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12693
channel = ioc->req_boot_device.channel;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12694
} else if (ioc->req_alt_boot_device.device) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12695
device = ioc->req_alt_boot_device.device;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12696
channel = ioc->req_alt_boot_device.channel;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12697
} else if (ioc->current_boot_device.device) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12698
device = ioc->current_boot_device.device;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12699
channel = ioc->current_boot_device.channel;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1270
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12714
rc = scsi_add_device(ioc->shost, RAID_CHANNEL,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12717
_scsih_raid_device_remove(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12727
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12729
list_move_tail(&pcie_device->list, &ioc->pcie_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12730
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12731
rc = scsi_add_device(ioc->shost, PCIE_CHANNEL, tid, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12733
_scsih_pcie_device_remove(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12743
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12748
list_move_tail(&sas_device->list, &ioc->sas_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12749
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12751
if (ioc->hide_drives)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12757
if (!mpt3sas_transport_port_add(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12759
_scsih_sas_device_remove(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12761
if (!ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12762
mpt3sas_transport_port_remove(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12765
_scsih_sas_device_remove(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12778
_scsih_probe_raid(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12784
&ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12787
rc = scsi_add_device(ioc->shost, RAID_CHANNEL,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12790
_scsih_raid_device_remove(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12794
static struct _sas_device *get_next_sas_device(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12799
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12800
if (!list_empty(&ioc->sas_device_init_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12801
sas_device = list_first_entry(&ioc->sas_device_init_list,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12805
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12810
static void sas_device_make_active(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12815
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12831
list_add_tail(&sas_device->list, &ioc->sas_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12833
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12843
_scsih_probe_sas(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12847
if (ioc->hide_drives)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1285
_scsih_set_nvme_max_shutdown_latency(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12850
while ((sas_device = get_next_sas_device(ioc))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12851
if (!mpt3sas_transport_port_add(ioc, sas_device->handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12853
_scsih_sas_device_remove(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12863
if (!ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12864
mpt3sas_transport_port_remove(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12868
_scsih_sas_device_remove(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12873
sas_device_make_active(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12887
static struct _pcie_device *get_next_pcie_device(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12892
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12893
if (!list_empty(&ioc->pcie_device_init_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12894
pcie_device = list_first_entry(&ioc->pcie_device_init_list,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12898
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1291
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12911
static void pcie_device_make_active(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12916
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1292
list_for_each_entry(pcie_device, &ioc->pcie_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12923
list_add_tail(&pcie_device->list, &ioc->pcie_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12925
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12935
_scsih_probe_pcie(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12941
while ((pcie_device = get_next_pcie_device(ioc))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12948
pcie_device_make_active(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12952
rc = scsi_add_device(ioc->shost, PCIE_CHANNEL,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12955
_scsih_pcie_device_remove(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12965
if (!ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12969
_scsih_pcie_device_remove(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12974
pcie_device_make_active(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12986
_scsih_probe_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1299
ioc->max_shutdown_latency = shutdown_latency;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12990
if (!(ioc->facts.ProtocolFlags & MPI2_IOCFACTS_PROTOCOL_SCSI_INITIATOR))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12993
_scsih_probe_boot_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12995
if (ioc->ir_firmware) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
12997
le16_to_cpu(ioc->ioc_pg8.IRVolumeMappingFlags) &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1300
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13001
_scsih_probe_raid(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13002
_scsih_probe_sas(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13004
_scsih_probe_sas(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13005
_scsih_probe_raid(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13008
_scsih_probe_sas(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13009
_scsih_probe_pcie(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13024
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13027
mpt3sas_enable_diag_buffer(ioc, diag_buffer_enable);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13028
else if (ioc->manu_pg11.HostTraceBufferMaxSizeKB != 0)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13029
mpt3sas_enable_diag_buffer(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13034
ioc->start_scan = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13035
rc = mpt3sas_port_enable(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13038
ioc_info(ioc, "port enable: FAILED\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13048
static void _scsih_complete_devices_scanning(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13051
if (ioc->wait_for_discovery_to_complete) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13052
ioc->wait_for_discovery_to_complete = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13053
_scsih_probe_devices(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13056
mpt3sas_base_start_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13057
ioc->is_driver_loading = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13072
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13077
ioc->is_driver_loading = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13078
ioc->wait_for_discovery_to_complete = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13083
ioc->port_enable_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13084
ioc_info(ioc, "port enable: FAILED with timeout (timeout=300s)\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13085
ioc->is_driver_loading = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13089
if (ioc->start_scan) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13090
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13092
mpt3sas_print_fault_code(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13098
mpt3sas_base_coredump_info(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13100
mpt3sas_base_wait_for_coredump_completion(ioc, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13107
if (ioc->port_enable_cmds.status & MPT3_CMD_RESET) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13108
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13110
ioc->port_enable_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13113
if (ioc->start_scan_failed) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13114
ioc_info(ioc, "port enable: FAILED with (ioc_status=0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13115
ioc->start_scan_failed);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13116
ioc->is_driver_loading = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13117
ioc->wait_for_discovery_to_complete = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13118
ioc->remove_host = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1312
_scsih_pcie_device_remove(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13122
ioc_info(ioc, "port enable: SUCCESS\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13123
ioc->port_enable_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13124
_scsih_complete_devices_scanning(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13128
ioc->port_enable_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13129
if (mpt3sas_base_hard_reset_handler(ioc, SOFT_RESET))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13130
ioc->is_driver_loading = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13141
struct MPT3SAS_ADAPTER *ioc =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13145
int nr_msix_vectors = ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13146
int iopoll_q_count = ioc->reply_queue_count - nr_msix_vectors;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13157
nr_msix_vectors - ioc->high_iops_queues;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13158
offset = ioc->high_iops_queues;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13171
blk_mq_map_hw_queues(map, &ioc->pdev->dev, offset);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1321
ioc_info(ioc, "removing handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1324
ioc_info(ioc, "removing enclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1328
ioc_info(ioc, "removing enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1332
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13340
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1337
if (pcie_device->shutdown_latency == ioc->max_shutdown_latency)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13373
ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13374
memset(ioc, 0, sizeof(struct MPT3SAS_ADAPTER));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13375
ioc->hba_mpi_version_belonged = hba_mpi_version;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13376
ioc->id = mpt2_ids++;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13377
sprintf(ioc->driver_name, "%s", MPT2SAS_DRIVER_NAME);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13380
ioc->is_warpdrive = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13381
ioc->hide_ir_msg = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13385
ioc->is_mcpu_endpoint = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13388
ioc->mfg_pg10_hide_flag = MFG_PAGE10_EXPOSE_ALL_DISKS;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1339
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13393
ioc->multipath_on_hba = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13395
ioc->multipath_on_hba = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13405
ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13406
memset(ioc, 0, sizeof(struct MPT3SAS_ADAPTER));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13407
ioc->hba_mpi_version_belonged = hba_mpi_version;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13408
ioc->id = mpt3_ids++;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13409
sprintf(ioc->driver_name, "%s", MPT3SAS_DRIVER_NAME);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13419
ioc->is_gen35_ioc = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13442
ioc->is_aero_ioc = ioc->is_gen35_ioc = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13445
ioc->is_gen35_ioc = ioc->is_aero_ioc = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13447
if ((ioc->hba_mpi_version_belonged == MPI25_VERSION &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13449
(ioc->hba_mpi_version_belonged == MPI26_VERSION)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13450
ioc->combined_reply_queue = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13451
if (ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13452
ioc->combined_reply_index_count =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13455
ioc->combined_reply_index_count =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13459
switch (ioc->is_gen35_ioc) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13462
ioc->multipath_on_hba = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13464
ioc->multipath_on_hba = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13468
ioc->multipath_on_hba = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13470
ioc->multipath_on_hba = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13481
INIT_LIST_HEAD(&ioc->list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13483
list_add_tail(&ioc->list, &mpt3sas_ioc_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13485
ioc->shost = shost;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13486
ioc->pdev = pdev;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13487
ioc->scsi_io_cb_idx = scsi_io_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13488
ioc->tm_cb_idx = tm_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13489
ioc->ctl_cb_idx = ctl_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13490
ioc->base_cb_idx = base_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13491
ioc->port_enable_cb_idx = port_enable_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13492
ioc->transport_cb_idx = transport_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13493
ioc->scsih_cb_idx = scsih_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13494
ioc->config_cb_idx = config_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13495
ioc->tm_tr_cb_idx = tm_tr_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13496
ioc->tm_tr_volume_cb_idx = tm_tr_volume_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13497
ioc->tm_sas_control_cb_idx = tm_sas_control_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13498
ioc->logging_level = logging_level;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13499
ioc->schedule_dead_ioc_flush_running_cmds = &_scsih_flush_running_cmds;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13501
ioc->max_shutdown_latency = IO_UNIT_CONTROL_SHUTDOWN_TIMEOUT;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13505
ioc->drv_support_bitmap |= MPT_DRV_SUPPORT_BITMAP_MEMMOVE;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13507
ioc->drv_support_bitmap |= MPT_DRV_SUPPORT_BITMAP_ADDNLQUERY;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13509
ioc->enable_sdev_max_qd = enable_sdev_max_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1351
_scsih_set_nvme_max_shutdown_latency(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13512
mutex_init(&ioc->reset_in_progress_mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13513
mutex_init(&ioc->hostdiag_unlock_mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13515
mutex_init(&ioc->pci_access_mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13516
spin_lock_init(&ioc->ioc_reset_in_progress_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13517
spin_lock_init(&ioc->scsi_lookup_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13518
spin_lock_init(&ioc->sas_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13519
spin_lock_init(&ioc->sas_node_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13520
spin_lock_init(&ioc->fw_event_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13521
spin_lock_init(&ioc->raid_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13522
spin_lock_init(&ioc->pcie_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13523
spin_lock_init(&ioc->diag_trigger_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13525
INIT_LIST_HEAD(&ioc->sas_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13526
INIT_LIST_HEAD(&ioc->sas_device_init_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13527
INIT_LIST_HEAD(&ioc->sas_expander_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13528
INIT_LIST_HEAD(&ioc->enclosure_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13529
INIT_LIST_HEAD(&ioc->pcie_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13530
INIT_LIST_HEAD(&ioc->pcie_device_init_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13531
INIT_LIST_HEAD(&ioc->fw_event_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13532
INIT_LIST_HEAD(&ioc->raid_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13533
INIT_LIST_HEAD(&ioc->sas_hba.sas_port_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13534
INIT_LIST_HEAD(&ioc->delayed_tr_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13535
INIT_LIST_HEAD(&ioc->delayed_sc_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13536
INIT_LIST_HEAD(&ioc->delayed_event_ack_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13537
INIT_LIST_HEAD(&ioc->delayed_tr_volume_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13538
INIT_LIST_HEAD(&ioc->reply_queue_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13539
INIT_LIST_HEAD(&ioc->port_table_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13541
sprintf(ioc->name, "%s_cm%d", ioc->driver_name, ioc->id);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13547
shost->unique_id = ioc->id;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13549
if (ioc->is_mcpu_endpoint) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13552
ioc_info(ioc, "The max_sectors value is set to %d\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13558
ioc_warn(ioc, "Invalid value %d passed for max_sectors, range is 64 to 32767. Assigning value of 64.\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13562
ioc_warn(ioc, "Invalid value %d passed for max_sectors, range is 64 to 32767.Assigning default value of 32767.\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13566
ioc_info(ioc, "The max_sectors value is set to %d\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13582
ioc->firmware_event_thread = alloc_ordered_workqueue(
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13583
"fw_event_%s%d", 0, ioc->driver_name, ioc->id);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13584
if (!ioc->firmware_event_thread) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13585
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13593
if (ioc->is_gen35_ioc && host_tagset_enable)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13596
ioc->is_driver_loading = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13597
if ((mpt3sas_base_attach(ioc))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13598
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13604
if (ioc->is_warpdrive) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13605
if (ioc->mfg_pg10_hide_flag == MFG_PAGE10_EXPOSE_ALL_DISKS)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13606
ioc->hide_drives = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13607
else if (ioc->mfg_pg10_hide_flag == MFG_PAGE10_HIDE_ALL_DISKS)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13608
ioc->hide_drives = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1361
_scsih_pcie_device_remove_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13610
if (mpt3sas_get_num_volumes(ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13611
ioc->hide_drives = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13613
ioc->hide_drives = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13616
ioc->hide_drives = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13622
ioc->reply_queue_count - ioc->high_iops_queues;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13625
ioc->reply_queue_count - ioc->iopoll_q_start_index;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13629
dev_info(&ioc->pdev->dev,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13636
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13642
mpt3sas_setup_debugfs(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13645
mpt3sas_base_detach(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13647
destroy_workqueue(ioc->firmware_event_thread);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13650
list_del(&ioc->list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13667
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13670
rc = _scsih_get_shost_and_ioc(pdev, &shost, &ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13674
mpt3sas_base_stop_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13676
_scsih_nvme_shutdown(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13677
ioc_info(ioc, "pdev=0x%p, slot=%s, entering operating state\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1368
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13680
mpt3sas_base_free_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13695
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13699
r = _scsih_get_shost_and_ioc(pdev, &shost, &ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13703
ioc_info(ioc, "pdev=0x%p, slot=%s, previous operating state [D%d]\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13706
ioc->pdev = pdev;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13707
r = mpt3sas_base_map_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1371
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13710
ioc_info(ioc, "Issuing Hard Reset as part of OS Resume\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13711
mpt3sas_base_hard_reset_handler(ioc, SOFT_RESET);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13713
mpt3sas_base_start_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1372
pcie_device = __mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13730
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13732
if (_scsih_get_shost_and_ioc(pdev, &shost, &ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13735
ioc_info(ioc, "PCI error: detected callback, state(%d)!!\n", state);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13742
ioc->pci_error_recovery = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13743
scsi_block_requests(ioc->shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13744
mpt3sas_base_stop_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13745
mpt3sas_base_free_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13749
ioc->pci_error_recovery = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13750
mpt3sas_base_stop_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13751
mpt3sas_base_pause_mq_polling(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13752
_scsih_flush_running_cmds(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13770
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13773
if (_scsih_get_shost_and_ioc(pdev, &shost, &ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13776
ioc_info(ioc, "PCI error: slot reset callback!!\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13778
ioc->pci_error_recovery = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13779
ioc->pdev = pdev;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13781
rc = mpt3sas_base_map_resources(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13785
ioc_info(ioc, "Issuing Hard Reset as part of PCI Slot Reset\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13786
rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13788
ioc_warn(ioc, "hard reset: %s\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1379
if (pcie_device->shutdown_latency == ioc->max_shutdown_latency)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13809
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13811
if (_scsih_get_shost_and_ioc(pdev, &shost, &ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13814
ioc_info(ioc, "PCI error: resume callback!!\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13816
mpt3sas_base_start_watchdog(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13817
scsi_unblock_requests(ioc->shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1382
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13828
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13830
if (_scsih_get_shost_and_ioc(pdev, &shost, &ioc))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
13833
ioc_info(ioc, "PCI error: mmio enabled callback!!\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1384
_scsih_pcie_device_remove_from_sml(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1394
_scsih_set_nvme_max_shutdown_latency(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1405
_scsih_pcie_device_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1410
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1411
ioc_info(ioc, "%s: handle (0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1415
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1416
ioc_info(ioc, "%s: enclosure logical id(0x%016llx), slot( %d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1421
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1422
ioc_info(ioc, "%s: enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1426
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1428
list_add_tail(&pcie_device->list, &ioc->pcie_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1429
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1433
clear_bit(pcie_device->handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1436
if (scsi_add_device(ioc->shost, PCIE_CHANNEL, pcie_device->id, 0)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1437
_scsih_pcie_device_remove(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1439
if (!ioc->is_driver_loading) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1441
clear_bit(pcie_device->handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1444
clear_bit(pcie_device->handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1456
_scsih_pcie_device_init_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1461
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1462
ioc_info(ioc, "%s: handle (0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1466
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1467
ioc_info(ioc, "%s: enclosure logical id(0x%016llx), slot( %d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1472
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1473
ioc_info(ioc, "%s: enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1477
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1479
list_add_tail(&pcie_device->list, &ioc->pcie_device_init_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1482
_scsih_determine_boot_device(ioc, pcie_device, PCIE_CHANNEL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1483
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1496
_scsih_raid_device_find_by_id(struct MPT3SAS_ADAPTER *ioc, int id, int channel)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1501
list_for_each_entry(raid_device, &ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1522
mpt3sas_raid_device_find_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1527
list_for_each_entry(raid_device, &ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1548
_scsih_raid_device_find_by_wwid(struct MPT3SAS_ADAPTER *ioc, u64 wwid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1553
list_for_each_entry(raid_device, &ioc->raid_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1572
_scsih_raid_device_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1577
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1578
ioc_info(ioc, "%s: handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1582
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1583
list_add_tail(&raid_device->list, &ioc->raid_device_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1584
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1594
_scsih_raid_device_remove(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1599
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1602
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1615
mpt3sas_scsih_expander_find_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1620
list_for_each_entry(sas_expander, &ioc->sas_expander_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1640
mpt3sas_scsih_enclosure_find_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1645
list_for_each_entry(enclosure_dev, &ioc->enclosure_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1665
mpt3sas_scsih_expander_find_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1673
list_for_each_entry(sas_expander, &ioc->sas_expander_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1694
_scsih_expander_node_add(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1699
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1700
list_add_tail(&sas_expander->list, &ioc->sas_expander_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1701
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1754
_scsih_scsi_lookup_find_by_target(struct MPT3SAS_ADAPTER *ioc, int id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1761
smid <= ioc->shost->can_queue; smid++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1762
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1784
_scsih_scsi_lookup_find_by_lun(struct MPT3SAS_ADAPTER *ioc, int id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1790
for (smid = 1; smid <= ioc->shost->can_queue; smid++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1792
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1812
mpt3sas_scsih_scsi_lookup_get(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1820
smid <= ioc->scsiio_depth - INTERNAL_SCSIIO_CMDS_COUNT) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1822
ioc->io_queue_num[tag] << BLK_MQ_UNIQUE_TAG_BITS | tag;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1824
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1835
scmd = scsi_host_find_tag(ioc->shost, unique_tag);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1857
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1869
if (ioc->enable_sdev_max_qd || ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1881
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1882
sas_device = __mpt3sas_get_sdev_from_target(ioc, sas_target_priv_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1889
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1916
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1918
if (ioc->enable_sdev_max_qd)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1935
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1953
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1954
raid_device = _scsih_raid_device_find_by_id(ioc, starget->id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1960
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1964
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1970
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1971
pcie_device = __mpt3sas_get_pdev_by_idchannel(ioc, starget->id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1987
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1992
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
1994
sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2004
if (test_bit(sas_device->handle, ioc->pd_handles))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2011
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2024
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2036
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2037
raid_device = _scsih_raid_device_find_by_id(ioc, starget->id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2043
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2048
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2049
pcie_device = __mpt3sas_get_pdev_from_target(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2064
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2068
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2069
sas_device = __mpt3sas_get_sdev_from_target(ioc, sas_target_priv_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2084
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2102
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2127
ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2129
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2130
raid_device = _scsih_raid_device_find_by_id(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2134
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2137
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2138
pcie_device = __mpt3sas_get_pdev_by_wwid(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2149
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2152
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2153
sas_device = __mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2166
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2182
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2195
ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2198
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2199
pcie_device = __mpt3sas_get_pdev_from_target(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2207
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2210
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2211
sas_device = __mpt3sas_get_sdev_from_target(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2218
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2232
_scsih_display_sata_capabilities(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2241
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2243
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2251
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2286
struct MPT3SAS_ADAPTER *ioc = shost_priv(sdev->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2288
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2309
struct MPT3SAS_ADAPTER *ioc = shost_priv(sdev->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2320
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2323
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2324
raid_device = _scsih_raid_device_find_by_id(ioc, sdev->id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2330
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2335
if (mpt3sas_config_get_raid_volume_pg0(ioc, &mpi_reply, &vol_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2338
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2351
switch (ioc->hba_mpi_version_belonged) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2370
struct MPT3SAS_ADAPTER *ioc = shost_priv(sdev->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2379
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2380
raid_device = _scsih_raid_device_find_by_id(ioc, sdev->id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2384
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2389
if (mpt3sas_config_get_raid_volume_pg0(ioc, &mpi_reply, &vol_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2392
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2417
switch (ioc->hba_mpi_version_belonged) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2435
_scsih_set_level(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2455
switch (ioc->hba_mpi_version_belonged) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2477
_scsih_get_volume_capabilities(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2487
if ((mpt3sas_config_get_number_pds(ioc, raid_device->handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2489
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2490
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2499
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2500
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2505
if ((mpt3sas_config_get_raid_volume_pg0(ioc, &mpi_reply, vol_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2507
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2508
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2519
if (!(mpt3sas_config_get_phys_disk_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2522
if (!(mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2544
_scsih_enable_tlr(struct MPT3SAS_ADAPTER *ioc, struct scsi_device *sdev)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2551
if (!(ioc->facts.IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TLR))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2573
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2599
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2600
raid_device = mpt3sas_raid_device_find_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2601
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2603
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2604
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2609
if (_scsih_get_volume_capabilities(ioc, raid_device)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2610
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2611
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2619
mpt3sas_init_warpdrive_properties(ioc, raid_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2645
if (ioc->manu_pg10.OEMIdentifier &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2646
(le32_to_cpu(ioc->manu_pg10.GenericFlags0) &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2668
if (!ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2686
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2687
_scsih_set_level(ioc, sdev, raid_device->volume_type);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2693
if (mpt3sas_config_get_volume_handle(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2695
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2696
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2700
if (volume_handle && mpt3sas_config_get_volume_wwid(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2702
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2703
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2711
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2712
pcie_device = __mpt3sas_get_pdev_by_wwid(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2715
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2716
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2717
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2722
qdepth = ioc->max_nvme_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2745
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2748
lim->virt_boundary_mask = ioc->page_size - 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2752
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2753
sas_device = __mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2757
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2758
dfailprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2759
ioc_warn(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
276
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2768
ioc->max_wideport_qd : ioc->max_narrowport_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2780
qdepth = ioc->max_sata_qd;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2796
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2799
_scsih_display_sata_capabilities(ioc, handle, sdev);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2802
retval = _scsih_ata_pass_thru_idd(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2813
_scsih_enable_tlr(ioc, sdev);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2871
_scsih_response_code(struct MPT3SAS_ADAPTER *ioc, u8 response_code)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2904
ioc_warn(ioc, "response_code(0x%01x): %s\n", response_code, desc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2921
_scsih_tm_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2925
if (ioc->tm_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2927
if (ioc->tm_cmds.smid != smid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2929
ioc->tm_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2930
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2932
memcpy(ioc->tm_cmds.reply, mpi_reply, mpi_reply->MsgLength*4);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2933
ioc->tm_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2935
ioc->tm_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2936
complete(&ioc->tm_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2948
mpt3sas_scsih_set_tm_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2954
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2963
ioc->ignore_loginfos = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2976
mpt3sas_scsih_clear_tm_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2982
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
2991
ioc->ignore_loginfos = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3009
scsih_tm_cmd_map_status(struct MPT3SAS_ADAPTER *ioc, uint channel,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3013
if (smid_task <= ioc->shost->can_queue) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3016
if (!(_scsih_scsi_lookup_find_by_target(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3022
if (!(_scsih_scsi_lookup_find_by_lun(ioc, id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3029
} else if (smid_task == ioc->scsih_cmds.smid) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3030
if ((ioc->scsih_cmds.status & MPT3_CMD_COMPLETE) ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3031
(ioc->scsih_cmds.status & MPT3_CMD_NOT_USED))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3033
} else if (smid_task == ioc->ctl_cmds.smid) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3034
if ((ioc->ctl_cmds.status & MPT3_CMD_COMPLETE) ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3035
(ioc->ctl_cmds.status & MPT3_CMD_NOT_USED))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3060
scsih_tm_post_processing(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3065
rc = scsih_tm_cmd_map_status(ioc, channel, id, lun, type, smid_task);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3069
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3079
mpt3sas_base_mask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3080
mpt3sas_base_sync_reply_irqs(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3081
mpt3sas_base_unmask_interrupts(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3083
return scsih_tm_cmd_map_status(ioc, channel, id, lun, type, smid_task);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3108
mpt3sas_scsih_issue_tm(struct MPT3SAS_ADAPTER *ioc, u16 handle, uint channel,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3120
lockdep_assert_held(&ioc->tm_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3122
if (ioc->tm_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3123
ioc_info(ioc, "%s: tm_cmd busy!!!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3127
if (ioc->shost_recovery || ioc->remove_host ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3128
ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3129
ioc_info(ioc, "%s: host reset in progress!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3133
ioc_state = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3135
dhsprintk(ioc, ioc_info(ioc, "unexpected doorbell active!\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3136
rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3141
mpt3sas_print_fault_code(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3143
rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3147
mpt3sas_print_coredump_info(ioc, ioc_state &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3149
rc = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3153
smid = mpt3sas_base_get_smid_hpr(ioc, ioc->tm_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3155
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3159
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3160
ioc_info(ioc, "sending tm: handle(0x%04x), task_type(0x%02x), smid(%d), timeout(%d), tr_method(0x%x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3162
ioc->tm_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3163
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3164
ioc->tm_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3166
memset(ioc->tm_cmds.reply, 0, sizeof(Mpi2SCSITaskManagementReply_t));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3175
mpt3sas_scsih_set_tm_flag(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3176
init_completion(&ioc->tm_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3177
ioc->put_smid_hi_priority(ioc, smid, msix_task);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3178
wait_for_completion_timeout(&ioc->tm_cmds.done, timeout*HZ);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3179
if (!(ioc->tm_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3180
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3181
ioc->tm_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3184
rc = mpt3sas_base_hard_reset_handler(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3192
mpt3sas_base_sync_reply_irqs(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3194
if (ioc->tm_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3195
mpt3sas_trigger_master(ioc, MASTER_TRIGGER_TASK_MANAGMENT);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3196
mpi_reply = ioc->tm_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3197
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3198
ioc_info(ioc, "complete tm: ioc_status(0x%04x), loginfo(0x%08x), term_count(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3202
if (ioc->logging_level & MPT_DEBUG_TM) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3203
_scsih_response_code(ioc, mpi_reply->ResponseCode);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3224
request = mpt3sas_base_get_msg_frame(ioc, smid_task);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3228
ioc_info(ioc, "Task abort tm failed: handle(0x%04x),"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3237
rc = scsih_tm_post_processing(ioc, handle, channel, id, lun,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3249
mpt3sas_scsih_clear_tm_flag(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3250
ioc->tm_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3254
int mpt3sas_scsih_issue_locked_tm(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3260
mutex_lock(&ioc->tm_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3261
ret = mpt3sas_scsih_issue_tm(ioc, handle, channel, id, lun, type,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3263
mutex_unlock(&ioc->tm_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3276
_scsih_tm_display_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3287
if (ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3300
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3301
pcie_device = __mpt3sas_get_pdev_from_target(ioc, priv_target);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3321
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3324
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3325
sas_device = __mpt3sas_get_sdev_from_target(ioc, priv_target);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3346
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3359
struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3371
_scsih_tm_display_info(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3375
ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3402
mpt3sas_halt_firmware(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3405
pcie_device = mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3406
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3408
timeout = ioc->nvme_abort_timeout;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3409
r = mpt3sas_scsih_issue_locked_tm(ioc, handle, scmd->device->channel,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3433
struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3447
_scsih_tm_display_info(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3451
ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3464
sas_device = mpt3sas_get_sdev_from_target(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3477
pcie_device = mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3479
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3486
r = mpt3sas_scsih_issue_locked_tm(ioc, handle, scmd->device->channel,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3514
struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3527
_scsih_tm_display_info(ioc, scmd);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3531
ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3544
sas_device = mpt3sas_get_sdev_from_target(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3557
pcie_device = mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3559
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3565
r = mpt3sas_scsih_issue_locked_tm(ioc, handle, scmd->device->channel,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3593
struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3596
ioc_info(ioc, "attempting host reset! scmd(0x%p)\n", scmd);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3599
if (ioc->is_driver_loading || ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3600
ioc_info(ioc, "Blocking the host reset\n");
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3605
retval = mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3608
ioc_info(ioc, "host reset: %s scmd(0x%p)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3624
_scsih_fw_event_add(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work *fw_event)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3628
if (ioc->firmware_event_thread == NULL)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3631
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3634
list_add_tail(&fw_event->list, &ioc->fw_event_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3637
queue_work(ioc->firmware_event_thread, &fw_event->work);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3638
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3650
_scsih_fw_event_del_from_list(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3655
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3660
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3674
_scsih_fw_event_requeue(struct MPT3SAS_ADAPTER *ioc, struct fw_event_work
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3679
if (ioc->firmware_event_thread == NULL)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3682
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3684
list_add_tail(&fw_event->list, &ioc->fw_event_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3690
queue_delayed_work(ioc->firmware_event_thread, &fw_event->delayed_work,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3692
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3701
mpt3sas_send_trigger_data_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3707
if (ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3714
fw_event->ioc = ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3716
_scsih_fw_event_add(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3725
_scsih_error_recovery_delete_devices(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3733
fw_event->ioc = ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3734
_scsih_fw_event_add(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3743
mpt3sas_port_enable_complete(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3751
fw_event->ioc = ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3752
_scsih_fw_event_add(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3756
static struct fw_event_work *dequeue_next_fw_event(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3761
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3762
if (!list_empty(&ioc->fw_event_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3763
fw_event = list_first_entry(&ioc->fw_event_list,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3768
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
377
struct MPT3SAS_ADAPTER *ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3783
_scsih_fw_event_cleanup_queue(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3787
if ((list_empty(&ioc->fw_event_list) && !ioc->current_event) ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3788
!ioc->firmware_event_thread)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3796
if (ioc->shost_recovery && ioc->current_event)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3797
ioc->current_event->ignore = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3799
ioc->fw_events_cleanup = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3800
while ((fw_event = dequeue_next_fw_event(ioc)) ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3801
(fw_event = ioc->current_event)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3817
if (fw_event == ioc->current_event &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3818
ioc->current_event->event !=
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3820
ioc->current_event = NULL;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3833
ioc->port_enable_cmds.status |= MPT3_CMD_RESET;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3834
ioc->start_scan = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
384
list_for_each_entry(ioc, &mpt3sas_ioc_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3849
ioc->fw_events_cleanup = 0;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
385
ioc->logging_level = logging_level;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3929
_scsih_ublock_io_all_device(struct MPT3SAS_ADAPTER *ioc, u8 no_turs)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3942
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3962
pcie_device = mpt3sas_get_pdev_by_handle(ioc, sas_target->handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3963
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3968
rc = _scsih_wait_for_device_to_become_ready(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3990
sas_device = mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
3997
pcie_device = mpt3sas_get_pdev_by_wwid(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4029
_scsih_ublock_io_device_wait(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4044
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4063
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4078
pcie_device = mpt3sas_get_pdev_by_handle(ioc, sas_target->handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4079
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4084
rc = _scsih_wait_for_device_to_become_ready(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4093
ioc->shost_recovery);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4095
rc = _scsih_wait_for_device_to_become_ready(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4121
sas_device = mpt3sas_get_sdev_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4127
pcie_device = mpt3sas_get_pdev_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4163
_scsih_ublock_io_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4169
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4191
_scsih_block_io_all_device(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4196
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4220
_scsih_block_io_device(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4226
sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4228
shost_for_each_device(sdev, ioc->shost) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4261
_scsih_block_io_to_children_attached_to_ex(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4276
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4277
sas_device = __mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4282
ioc->blocking_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4285
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4298
ioc, mpt3sas_port->remote_identify.sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4300
_scsih_block_io_to_children_attached_to_ex(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4315
_scsih_block_io_to_children_attached_directly(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4329
_scsih_block_io_device(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4342
_scsih_block_io_to_pcie_children_attached_directly(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4357
_scsih_block_io_device(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4376
_scsih_tm_tr_send(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4390
if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4391
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4392
ioc_info(ioc, "%s: host in pci error recovery: handle(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4396
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4398
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4399
ioc_info(ioc, "%s: host is not operational: handle(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4405
if (test_bit(handle, ioc->pd_handles))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4408
clear_bit(handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4410
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4411
sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4419
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4421
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4422
pcie_device = __mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4429
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4430
if (pcie_device && (!ioc->tm_custom_handling) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4439
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4440
ioc_info(ioc, "setting delete flag: handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4444
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4445
ioc_info(ioc, "setting delete flag:enclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4449
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4450
ioc_info(ioc, "setting delete flag: enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4455
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4456
ioc_info(ioc, "setting delete flag: logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4460
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4461
ioc_info(ioc, "setting delete flag:, enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4465
_scsih_ublock_io_device(ioc, sas_address, port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4469
smid = mpt3sas_base_get_smid_hpr(ioc, ioc->tm_tr_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4476
list_add_tail(&delayed_tr->list, &ioc->delayed_tr_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4477
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4478
ioc_info(ioc, "DELAYED:tr:handle(0x%04x), (open)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4483
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4484
ioc_info(ioc, "tr_send:handle(0x%04x), (open), smid(%d), cb(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4485
handle, smid, ioc->tm_tr_cb_idx));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4486
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
449
mpt3sas_get_port_by_id(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4492
set_bit(handle, ioc->device_remove_in_progress);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4493
ioc->put_smid_hi_priority(ioc, smid, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4494
mpt3sas_trigger_master(ioc, MASTER_TRIGGER_DEVICE_REMOVAL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4520
_scsih_tm_tr_complete(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4526
mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4532
if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4533
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4534
ioc_info(ioc, "%s: host in pci error recovery\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4538
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4540
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4541
ioc_info(ioc, "%s: host is not operational\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4546
ioc_err(ioc, "mpi_reply not valid at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4550
mpi_request_tm = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4553
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4554
ioc_err(ioc, "spurious interrupt: handle(0x%04x:0x%04x), smid(%d)!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4560
mpt3sas_trigger_master(ioc, MASTER_TRIGGER_TASK_MANAGMENT);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4561
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4562
ioc_info(ioc, "tr_complete:handle(0x%04x), (open) smid(%d), ioc_status(0x%04x), loginfo(0x%08x), completed(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4567
smid_sas_ctrl = mpt3sas_base_get_smid(ioc, ioc->tm_sas_control_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4571
return _scsih_check_for_pending_tm(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4574
list_add_tail(&delayed_sc->list, &ioc->delayed_sc_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4575
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4576
ioc_info(ioc, "DELAYED:sc:handle(0x%04x), (open)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4578
return _scsih_check_for_pending_tm(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4581
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4582
ioc_info(ioc, "sc_send:handle(0x%04x), (open), smid(%d), cb(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4583
handle, smid_sas_ctrl, ioc->tm_sas_control_cb_idx));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4584
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid_sas_ctrl);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4589
ioc->put_smid_default(ioc, smid_sas_ctrl);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
459
if (!ioc->multipath_on_hba)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4591
return _scsih_check_for_pending_tm(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4601
inline bool _scsih_allow_scmd_to_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4605
if (ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4608
if (ioc->hba_mpi_version_belonged == MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4609
if (ioc->remove_host)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4615
if (ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
463
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4645
_scsih_sas_control_complete(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4649
mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4652
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4653
ioc_info(ioc, "sc_complete:handle(0x%04x), (open) smid(%d), ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4660
ioc->device_remove_in_progress);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4663
ioc_err(ioc, "mpi_reply not valid at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4666
return mpt3sas_check_for_pending_internal_cmds(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4680
_scsih_tm_tr_volume_send(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4686
if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4687
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4688
ioc_info(ioc, "%s: host reset in progress!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4693
smid = mpt3sas_base_get_smid_hpr(ioc, ioc->tm_tr_volume_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4700
list_add_tail(&delayed_tr->list, &ioc->delayed_tr_volume_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4701
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4702
ioc_info(ioc, "DELAYED:tr:handle(0x%04x), (open)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4707
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4708
ioc_info(ioc, "tr_send:handle(0x%04x), (open), smid(%d), cb(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4709
handle, smid, ioc->tm_tr_volume_cb_idx));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4710
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4715
ioc->put_smid_hi_priority(ioc, smid, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4730
_scsih_tm_volume_tr_complete(struct MPT3SAS_ADAPTER *ioc, u16 smid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4736
mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4738
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4739
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4740
ioc_info(ioc, "%s: host reset in progress!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4745
ioc_err(ioc, "mpi_reply not valid at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4750
mpi_request_tm = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4753
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4754
ioc_err(ioc, "spurious interrupt: handle(0x%04x:0x%04x), smid(%d)!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4760
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4761
ioc_info(ioc, "tr_complete:handle(0x%04x), (open) smid(%d), ioc_status(0x%04x), loginfo(0x%08x), completed(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4766
return _scsih_check_for_pending_tm(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4779
_scsih_issue_delayed_event_ack(struct MPT3SAS_ADAPTER *ioc, u16 smid, U16 event,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
478
if (!ioc->multipath_on_hba) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4783
int i = smid - ioc->internal_smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4790
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4791
ioc->internal_lookup[i].cb_idx = ioc->base_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4792
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4794
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4795
ioc_info(ioc, "EVENT ACK: event(0x%04x), smid(%d), cb(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4796
le16_to_cpu(event), smid, ioc->base_cb_idx));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4797
ack_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4804
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4817
_scsih_issue_delayed_sas_io_unit_ctrl(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4822
int i = smid - ioc->internal_smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4825
if (ioc->remove_host) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4826
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4827
ioc_info(ioc, "%s: host has been removed\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4830
} else if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4831
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4832
ioc_info(ioc, "%s: host in pci error recovery\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4836
ioc_state = mpt3sas_base_get_iocstate(ioc, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4838
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4839
ioc_info(ioc, "%s: host is not operational\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
484
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4848
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4849
ioc->internal_lookup[i].cb_idx = ioc->tm_sas_control_cb_idx;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4850
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4852
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4853
ioc_info(ioc, "sc_send:handle(0x%04x), (open), smid(%d), cb(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4854
handle, smid, ioc->tm_sas_control_cb_idx));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4855
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4860
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4877
mpt3sas_check_for_pending_internal_cmds(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
488
&ioc->port_table_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4882
if (!list_empty(&ioc->delayed_event_ack_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4883
delayed_event_ack = list_entry(ioc->delayed_event_ack_list.next,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4885
_scsih_issue_delayed_event_ack(ioc, smid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4892
if (!list_empty(&ioc->delayed_sc_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4893
delayed_sc = list_entry(ioc->delayed_sc_list.next,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4895
_scsih_issue_delayed_sas_io_unit_ctrl(ioc, smid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4916
_scsih_check_for_pending_tm(struct MPT3SAS_ADAPTER *ioc, u16 smid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4920
if (!list_empty(&ioc->delayed_tr_volume_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4921
delayed_tr = list_entry(ioc->delayed_tr_volume_list.next,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4923
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4924
_scsih_tm_tr_volume_send(ioc, delayed_tr->handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4930
if (!list_empty(&ioc->delayed_tr_list)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4931
delayed_tr = list_entry(ioc->delayed_tr_list.next,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4933
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4934
_scsih_tm_tr_send(ioc, delayed_tr->handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4955
_scsih_check_topo_delete_events(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4973
_scsih_tm_tr_send(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4977
if (expander_handle < ioc->sas_hba.num_phys) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4978
_scsih_block_io_to_children_attached_directly(ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4984
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4985
sas_expander = mpt3sas_scsih_expander_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4987
_scsih_block_io_to_children_attached_to_ex(ioc, sas_expander);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4988
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4990
handle = find_first_bit(ioc->blocking_handles,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4991
ioc->facts.MaxDevHandle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4992
if (handle < ioc->facts.MaxDevHandle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4993
_scsih_block_io_device(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4994
} while (test_and_clear_bit(handle, ioc->blocking_handles));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
4996
_scsih_block_io_to_children_attached_directly(ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5002
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5003
list_for_each_entry(fw_event, &ioc->fw_event_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5015
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5016
ioc_info(ioc, "setting ignoring flag\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5021
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
503
mpt3sas_get_vphy_by_phy(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5036
_scsih_check_pcie_topo_remove_events(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5052
_scsih_tm_tr_send(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5058
ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5067
ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5073
spin_lock_irqsave(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5074
list_for_each_entry(fw_event, &ioc->fw_event_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5087
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5088
ioc_info(ioc, "setting ignoring flag for switch event\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5093
spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5104
_scsih_set_volume_delete_flag(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5110
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5111
raid_device = mpt3sas_raid_device_find_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5117
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5118
ioc_info(ioc, "setting delete flag: handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5121
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5158
_scsih_check_ir_config_unhide_events(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5169
if (ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5183
_scsih_set_volume_delete_flag(ioc, volume_handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5201
_scsih_tm_tr_volume_send(ioc, a);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5203
_scsih_tm_tr_volume_send(ioc, b);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5212
clear_bit(handle, ioc->pd_handles);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5214
_scsih_tm_tr_send(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5220
list_add_tail(&delayed_tr->list, &ioc->delayed_tr_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5221
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5222
ioc_info(ioc, "DELAYED:tr:handle(0x%04x), (open)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5225
_scsih_tm_tr_send(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5241
_scsih_check_volume_delete_events(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5251
_scsih_set_volume_delete_flag(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5262
_scsih_temp_threshold_events(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5266
if (ioc->temp_sensors_count >= event_data->SensorNum) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5267
ioc_err(ioc, "Temperature Threshold flags %s%s%s%s exceeded for Sensor: %d !!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5273
ioc_err(ioc, "Current Temp In Celsius: %d\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5275
if (ioc->hba_mpi_version_belonged != MPI2_VERSION) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5276
doorbell = mpt3sas_base_get_iocstate(ioc, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5279
mpt3sas_print_fault_code(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5283
mpt3sas_print_coredump_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5312
_scsih_flush_running_cmds(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5319
for (smid = 1; smid <= ioc->scsiio_depth; smid++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5320
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5326
mpt3sas_base_clear_st(ioc, st);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5328
if (ioc->pci_error_recovery || ioc->remove_host)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5334
dtmprintk(ioc, ioc_info(ioc, "completing %d cmds\n", count));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5346
_scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5379
if (ioc->is_gen35_ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5426
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5438
if (ioc->logging_level & MPT_DEBUG_SCSI)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5448
if (!(_scsih_allow_scmd_to_device(ioc, scmd))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5478
if (ioc->shost_recovery || ioc->ioc_link_reset_in_progress) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5520
if (((!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5525
smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5527
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5531
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5532
memset(mpi_request, 0, ioc->request_sz);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5533
_scsih_setup_eedp(ioc, scmd, mpi_request);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5550
mpt3sas_base_get_sense_buffer_dma(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5558
if (ioc->build_sg_scmd(ioc, scmd, smid, pcie_device)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5559
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5564
ioc->build_zero_len_sge(ioc, &mpi_request->SGL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5568
mpt3sas_setup_direct_io(ioc, scmd,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5575
ioc->put_smid_fast_path(ioc, smid, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5577
ioc->put_smid_scsi_io(ioc, smid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5580
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5620
_scsih_scsi_ioc_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5631
char *desc_scsi_state = ioc->tmp_string;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5641
if (ioc->hide_ir_msg)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
572
_scsih_get_sas_address(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5765
ioc_warn(ioc, "\t%s wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5768
pcie_device = mpt3sas_get_pdev_from_target(ioc, priv_target);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5770
ioc_info(ioc, "\twwid(0x%016llx), port(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5773
ioc_info(ioc, "\tenclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5777
ioc_info(ioc, "\tenclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5783
sas_device = mpt3sas_get_sdev_from_target(ioc, priv_target);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5785
ioc_warn(ioc, "\tsas_address(0x%016llx), phy(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5788
_scsih_display_enclosure_chassis_info(ioc, sas_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5795
ioc_warn(ioc, "\thandle(0x%04x), ioc_status(%s)(0x%04x), smid(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5798
ioc_warn(ioc, "\trequest_len(%d), underflow(%d), resid(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5800
ioc_warn(ioc, "\ttag(%d), transfer_count(%d), sc->result(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5803
ioc_warn(ioc, "\tscsi_status(%s)(0x%02x), scsi_state(%s)(0x%02x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5809
ioc_warn(ioc, "\t[sense_key,asc,ascq]: [0x%02x,0x%02x,0x%02x], count(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
581
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5816
_scsih_response_code(ioc, response_bytes[0]);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5827
_scsih_turn_on_pfa_led(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
583
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5833
sas_device = mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5844
if ((mpt3sas_base_scsi_enclosure_processor(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5846
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5853
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5854
ioc_info(ioc, "enclosure_processor: ioc_status (0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5870
_scsih_turn_off_pfa_led(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5884
if ((mpt3sas_base_scsi_enclosure_processor(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5886
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5892
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5893
ioc_info(ioc, "enclosure_processor: ioc_status (0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5907
_scsih_send_event_to_turn_on_pfa_led(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5916
fw_event->ioc = ioc;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5917
_scsih_fw_event_add(ioc, fw_event);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5928
_scsih_smart_predicted_fault(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
593
if ((handle <= ioc->sas_hba.num_phys) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5939
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5940
sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5953
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5955
if (ioc->pdev->subsystem_vendor == PCI_VENDOR_ID_IBM)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5956
_scsih_send_event_to_turn_on_pfa_led(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
596
*sas_address = ioc->sas_hba.sas_address;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5963
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5980
mpt3sas_ctl_add_to_event_log(ioc, event_reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
5988
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6005
_scsih_io_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6019
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6021
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6027
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6055
ioc->put_smid_scsi_io(ioc, smid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6066
if ((!ioc->is_warpdrive &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
607
ioc_err(ioc, "handle(0x%04x), ioc_status(0x%04x), failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6094
const void *sense_data = mpt3sas_base_get_sense_buffer(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6102
_scsih_smart_predicted_fault(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6104
mpt3sas_trigger_scsi(ioc, data.skey, data.asc, data.ascq);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6106
if ((ioc->logging_level & MPT_DEBUG_REPLY) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6110
_scsih_scsi_ioc_info(ioc, scmd, mpi_reply, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6231
if (scmd->result && (ioc->logging_level & MPT_DEBUG_REPLY))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6232
_scsih_scsi_ioc_info(ioc , scmd, mpi_reply, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6237
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6250
_scsih_update_vphys_after_reset(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
626
_scsih_determine_boot_device(struct MPT3SAS_ADAPTER *ioc, void *device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6268
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6280
sz = struct_size(sas_iounit_pg0, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6283
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6287
if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6296
for (i = 0; i < ioc->sas_hba.num_phys; i++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6315
if ((mpt3sas_config_get_phy_pg0(ioc, &mpi_reply, &phy_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6317
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6330
if (_scsih_get_sas_address(ioc, attached_handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6332
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6344
port_next, &ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6377
mport = mpt3sas_get_port_by_id(ioc, port_id, 1);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
638
if (!ioc->is_driver_loading)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6383
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6387
&ioc->port_table_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6405
ioc, attached_sas_addr, port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
642
if (!ioc->bios_pg3.BiosVersion)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6446
_scsih_get_port_table_after_reset(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6457
sz = struct_size(sas_iounit_pg0, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6460
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6465
if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6471
for (i = 0; i < ioc->sas_hba.num_phys; i++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6479
ioc, attached_handle, &attached_sas_addr) != 0) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6480
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6529
_scsih_look_and_get_matched_port_entry(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6538
list_for_each_entry(port_table_entry, &ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6596
_scsih_del_phy_part_of_anther_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6600
struct _sas_node *sas_node = &ioc->sas_hba;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6609
ioc, sas_node, &sas_node->phy[offset]);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6629
_scsih_add_or_del_phys_from_existing_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6634
struct _sas_node *sas_node = &ioc->sas_hba;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6638
for (offset = 0; offset < ioc->sas_hba.num_phys; offset++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6642
ioc, port_table, index, port_count,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6648
ioc, sas_node, &sas_node->phy[offset]);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
665
if (!ioc->req_boot_device.device) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6650
ioc, sas_node, &sas_node->phy[offset],
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6664
_scsih_del_dirty_vphy(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6670
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6676
drsprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
668
(ioc->bios_pg2.ReqBootDeviceForm &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6697
_scsih_del_dirty_port_entries(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
67
static void _scsih_expander_node_remove(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
670
&ioc->bios_pg2.RequestedBootDevice)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6702
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6707
drsprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
671
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
672
ioc_info(ioc, "%s: req_boot_device(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6720
_scsih_sas_port_refresh(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6731
drsprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6733
(unsigned long long)ioc->sas_hba.sas_address));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6735
mpt3sas_config_get_number_hba_phys(ioc, &num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6737
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
674
ioc->req_boot_device.device = device;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6742
if (num_phys > ioc->sas_hba.nr_phys_allocated) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6743
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6747
ioc->sas_hba.num_phys = num_phys;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6749
port_table = kzalloc_objs(struct hba_port, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
675
ioc->req_boot_device.channel = channel;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6753
port_count = _scsih_get_port_table_after_reset(ioc, port_table);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6757
drsprintk(ioc, ioc_info(ioc, "New Port table\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6759
drsprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6764
list_for_each_entry(port_table_entry, &ioc->port_table_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6767
drsprintk(ioc, ioc_info(ioc, "Old Port table\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6769
list_for_each_entry(port_table_entry, &ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6770
drsprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6778
ret = _scsih_look_and_get_matched_port_entry(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6781
drsprintk(ioc, ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
679
if (!ioc->req_alt_boot_device.device) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6791
_scsih_add_or_del_phys_from_existing_port(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6804
_scsih_add_or_del_phys_from_existing_port(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
682
(ioc->bios_pg2.ReqAltBootDeviceForm &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6829
_scsih_alloc_vphy(struct MPT3SAS_ADAPTER *ioc, u8 port_id, u8 phy_num)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6834
port = mpt3sas_get_port_by_id(ioc, port_id, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6838
vphy = mpt3sas_get_vphy_by_phy(ioc, port, phy_num);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
684
&ioc->bios_pg2.RequestedAltBootDevice)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
685
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6856
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
686
ioc_info(ioc, "%s: req_alt_boot_device(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6873
_scsih_sas_host_refresh(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
688
ioc->req_alt_boot_device.device = device;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6885
dtmprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6886
ioc_info(ioc, "updating handles for sas_host(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6887
(u64)ioc->sas_hba.sas_address));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6889
sz = struct_size(sas_iounit_pg0, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
689
ioc->req_alt_boot_device.channel = channel;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6892
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6897
if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6903
for (i = 0; i < ioc->sas_hba.num_phys ; i++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6906
ioc->sas_hba.handle = le16_to_cpu(
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6909
if (!(mpt3sas_get_port_by_id(ioc, port_id, 0))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6915
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6918
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6920
list_add_tail(&port->list, &ioc->port_table_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6928
if ((mpt3sas_config_get_phy_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
693
if (!ioc->current_boot_device.device) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6930
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6942
if (!_scsih_alloc_vphy(ioc, port_id, i))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6944
ioc->sas_hba.phy[i].hba_vphy = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6951
if (!ioc->sas_hba.phy[i].phy) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6952
if ((mpt3sas_config_get_phy_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6954
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
696
(ioc->bios_pg2.CurrentBootDeviceForm &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6961
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6965
ioc->sas_hba.phy[i].phy_id = i;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6966
mpt3sas_transport_add_host_phy(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6967
&ioc->sas_hba.phy[i], phy_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6968
ioc->sas_hba.parent_dev);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6971
ioc->sas_hba.phy[i].handle = ioc->sas_hba.handle;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6976
ioc->sas_hba.phy[i].port =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6977
mpt3sas_get_port_by_id(ioc, port_id, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6978
mpt3sas_transport_update_links(ioc, ioc->sas_hba.sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
698
&ioc->bios_pg2.CurrentBootDevice)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6980
ioc->sas_hba.phy[i].port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6986
for (i = ioc->sas_hba.num_phys;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6987
i < ioc->sas_hba.nr_phys_allocated; i++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6988
if (ioc->sas_hba.phy[i].phy &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6989
ioc->sas_hba.phy[i].phy->negotiated_linkrate >=
drivers/scsi/mpt3sas/mpt3sas_scsih.c
699
dinitprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6991
mpt3sas_transport_update_links(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
6992
ioc->sas_hba.sas_address, 0, i,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
700
ioc_info(ioc, "%s: current_boot_device(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7006
_scsih_sas_host_add(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
702
ioc->current_boot_device.device = device;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7021
mpt3sas_config_get_number_hba_phys(ioc, &num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7023
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7028
ioc->sas_hba.nr_phys_allocated = max_t(u8,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
703
ioc->current_boot_device.channel = channel;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7030
ioc->sas_hba.phy = kzalloc_objs(struct _sas_phy,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7031
ioc->sas_hba.nr_phys_allocated);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7032
if (!ioc->sas_hba.phy) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7033
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7037
ioc->sas_hba.num_phys = num_phys;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7040
sz = struct_size(sas_iounit_pg0, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7043
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7047
if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7049
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7056
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7062
sz = struct_size(sas_iounit_pg1, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7065
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7069
if ((mpt3sas_config_get_sas_iounit_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7071
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7078
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7083
ioc->io_missing_delay =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7088
ioc->device_missing_delay = (device_missing_delay &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
709
__mpt3sas_get_sdev_from_target(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7091
ioc->device_missing_delay = device_missing_delay &
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7094
ioc->sas_hba.parent_dev = &ioc->shost->shost_gendev;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7095
for (i = 0; i < ioc->sas_hba.num_phys ; i++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7096
if ((mpt3sas_config_get_phy_pg0(ioc, &mpi_reply, &phy_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7098
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
71
static void _scsih_remove_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7105
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7111
ioc->sas_hba.handle = le16_to_cpu(sas_iounit_pg0->
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7115
if (!(mpt3sas_get_port_by_id(ioc, port_id, 0))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7121
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7125
&ioc->port_table_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7138
if (!_scsih_alloc_vphy(ioc, port_id, i))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
714
assert_spin_locked(&ioc->sas_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7140
ioc->sas_hba.phy[i].hba_vphy = 1;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7143
ioc->sas_hba.phy[i].handle = ioc->sas_hba.handle;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7144
ioc->sas_hba.phy[i].phy_id = i;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7145
ioc->sas_hba.phy[i].port =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7146
mpt3sas_get_port_by_id(ioc, port_id, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7147
mpt3sas_transport_add_host_phy(ioc, &ioc->sas_hba.phy[i],
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7148
phy_pg0, ioc->sas_hba.parent_dev);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7150
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7151
MPI2_SAS_DEVICE_PGAD_FORM_HANDLE, ioc->sas_hba.handle))) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7152
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7156
ioc->sas_hba.enclosure_handle =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7158
ioc->sas_hba.sas_address = le64_to_cpu(sas_device_pg0.SASAddress);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7159
ioc_info(ioc, "host_add: handle(0x%04x), sas_addr(0x%016llx), phys(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7160
ioc->sas_hba.handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7161
(u64)ioc->sas_hba.sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7162
ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7164
if (ioc->sas_hba.enclosure_handle) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7165
if (!(mpt3sas_config_get_enclosure_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7167
ioc->sas_hba.enclosure_handle)))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7168
ioc->sas_hba.enclosure_logical_id =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7187
_scsih_expander_add(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7207
if (ioc->shost_recovery || ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7210
if ((mpt3sas_config_get_expander_pg0(ioc, &mpi_reply, &expander_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7212
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7220
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7227
if (_scsih_get_sas_address(ioc, parent_handle, &sas_address_parent)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7229
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7235
if (sas_address_parent != ioc->sas_hba.sas_address) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7236
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7237
sas_expander = mpt3sas_scsih_expander_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7239
mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
724
mpt3sas_get_sdev_from_target(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7240
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7242
rc = _scsih_expander_add(ioc, parent_handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7248
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7250
sas_expander = mpt3sas_scsih_expander_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7251
sas_address, mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7252
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7259
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7268
sas_expander->port = mpt3sas_get_port_by_id(ioc, port_id, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7270
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7276
ioc_info(ioc, "expander_add: handle(0x%04x), parent(0x%04x), sas_addr(0x%016llx), phys(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7287
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7294
mpt3sas_port = mpt3sas_transport_port_add(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7297
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
73
static int _scsih_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
730
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7306
if ((mpt3sas_config_get_expander_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7308
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
731
ret = __mpt3sas_get_sdev_from_target(ioc, tgt_priv);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7316
mpt3sas_get_port_by_id(ioc, port_id, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7318
if ((mpt3sas_transport_add_expander_phy(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
732
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7321
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7330
mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7337
_scsih_expander_node_add(ioc, sas_expander);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7343
mpt3sas_transport_port_remove(ioc, sas_expander->sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7356
mpt3sas_expander_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7362
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7368
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7369
sas_expander = mpt3sas_scsih_expander_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7371
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7373
_scsih_expander_node_remove(ioc, sas_expander);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
738
__mpt3sas_get_pdev_from_target(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7390
_scsih_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index, u32 reply)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7394
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7395
if (ioc->scsih_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7397
if (ioc->scsih_cmds.smid != smid)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7399
ioc->scsih_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7401
memcpy(ioc->scsih_cmds.reply, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7403
ioc->scsih_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7405
ioc->scsih_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7406
complete(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7421
_scsi_send_scsi_io(struct MPT3SAS_ADAPTER *ioc, struct _scsi_io_transfer
drivers/scsi/mpt3sas/mpt3sas_scsih.c
743
assert_spin_locked(&ioc->pcie_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7440
if (ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7445
if (ioc->shost_recovery) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7456
mutex_lock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7458
if (ioc->scsih_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7465
if (test_bit(handle, ioc->device_remove_in_progress)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7471
ioc->scsih_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7473
rc = mpt3sas_wait_for_ioc(ioc, 10);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7478
smid = ioc->shost->can_queue + INTERNAL_SCSIIO_FOR_DISCOVERY;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7481
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7482
ioc->scsih_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
75
static int _scsih_pcie_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7513
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, data_in_dma,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7522
mpt3sas_base_get_sense_buffer_dma(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7523
priv_sense = mpt3sas_base_get_sense_buffer(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7530
init_completion(&ioc->scsih_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7532
ioc->put_smid_scsi_io(ioc, smid, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7534
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7535
wait_for_completion_timeout(&ioc->scsih_cmds.done,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7537
if (!(ioc->scsih_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7538
mpt3sas_check_cmd_timeout(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7539
ioc->scsih_cmds.status, mpi_request,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7543
if (ioc->scsih_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7545
mpi_reply = ioc->scsih_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7567
mpt3sas_scsih_issue_locked_tm(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7579
if (((ioc->scsih_cmds.status & MPT3_CMD_COMPLETE) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7581
((ioc->scsih_cmds.status & MPT3_CMD_RESET) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7593
ioc->scsih_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7594
mutex_unlock(&ioc->scsih_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7610
_scsih_determine_disposition(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
763
mpt3sas_get_pdev_from_target(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
769
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
77
static void _scsih_pcie_device_remove_from_sml(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
770
ret = __mpt3sas_get_pdev_from_target(ioc, tgt_priv);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
771
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7718
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7770
_scsih_report_luns(struct MPT3SAS_ADAPTER *ioc, u16 handle, void *data,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7783
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7788
lun_data = dma_alloc_coherent(&ioc->pdev->dev, data_length,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7792
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7799
ioc_info(ioc, "REPORT_LUNS: handle(0x%04x),\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7814
return_code = _scsi_send_scsi_io(ioc, transfer_packet, tr_timeout, tr_method);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7817
rc = _scsih_determine_disposition(ioc, transfer_packet);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7829
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7836
dma_free_coherent(&ioc->pdev->dev, data_length, lun_data,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7860
_scsih_start_unit(struct MPT3SAS_ADAPTER *ioc, u16 handle, u32 lun, u8 is_pd,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7888
return_code = _scsi_send_scsi_io(ioc, transfer_packet, tr_timeout, tr_method);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
789
__mpt3sas_get_sdev_by_rphy(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7891
rc = _scsih_determine_disposition(ioc, transfer_packet);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7920
_scsih_test_unit_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle, u32 lun,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
794
assert_spin_locked(&ioc->sas_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7948
return_code = _scsi_send_scsi_io(ioc, transfer_packet, tr_timeout, tr_method);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7951
rc = _scsih_determine_disposition(ioc, transfer_packet);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
796
list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
7990
_scsih_ata_pass_thru_idd(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
80
_scsih_pcie_check_device(struct MPT3SAS_ADAPTER *ioc, u16 handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8003
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8008
idd_data = dma_alloc_coherent(&ioc->pdev->dev, data_length,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8012
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8029
return_code = _scsi_send_scsi_io(ioc, transfer_packet, 30, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8032
rc = _scsih_determine_disposition(ioc, transfer_packet);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
804
list_for_each_entry(sas_device, &ioc->sas_device_init_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8045
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8052
dma_free_coherent(&ioc->pdev->dev, data_length, idd_data,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8075
_scsih_wait_for_device_to_become_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8080
if (ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8083
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8086
rc = _scsih_test_unit_ready(ioc, handle, lun, is_pd, tr_timeout, tr_method);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8090
rc = _scsih_start_unit(ioc, handle, lun, is_pd, tr_timeout, tr_method);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8093
rc = _scsih_test_unit_ready(ioc, handle, lun, is_pd, tr_timeout, tr_method);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
81
static u8 _scsih_check_for_pending_tm(struct MPT3SAS_ADAPTER *ioc, u16 smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8121
_scsih_wait_for_target_to_become_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8134
ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8138
rc = _scsih_report_luns(ioc, handle, lun_data,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8154
rc = _scsih_wait_for_device_to_become_ready(ioc, handle, retry_count,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8162
rc = _scsih_wait_for_device_to_become_ready(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8185
_scsih_check_access_status(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
82
static void _scsih_complete_devices_scanning(struct MPT3SAS_ADAPTER *ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8233
ioc_err(ioc, "discovery errors(%s): sas_address(0x%016llx), handle(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8247
_scsih_check_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
825
__mpt3sas_get_sdev_by_addr(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8262
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8281
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8283
port = mpt3sas_get_port_by_id(ioc, sas_device_pg0.PhysicalPort, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8286
sas_device = __mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8301
&& (ioc->hba_mpi_version_belonged != MPI2_VERSION)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8315
enclosure_dev = mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
833
assert_spin_locked(&ioc->sas_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8332
ioc_err(ioc, "device is not present handle(0x%04x), flags!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8338
if (_scsih_check_access_status(ioc, sas_address, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8342
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8345
_scsih_ublock_io_device_wait(ioc, sas_address, port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8347
_scsih_ublock_io_device(ioc, sas_address, port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
835
list_for_each_entry(sas_device, &ioc->sas_device_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8354
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8371
_scsih_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 retry_count,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8385
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8387
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8395
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
84
_scsih_wait_for_target_to_become_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8404
set_bit(handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8410
ioc_err(ioc, "device is not present handle(0x04%x)!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8416
if (_scsih_check_access_status(ioc, sas_address, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8421
sas_device = mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8422
sas_address, mpt3sas_get_port_by_id(ioc, port_id, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8424
clear_bit(handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8431
mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8434
ioc_info(ioc, "Enclosure handle(0x%04x) doesn't match with enclosure device!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
844
list_for_each_entry(sas_device, &ioc->sas_device_init_list, list) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8442
if ((!ioc->wait_for_discovery_to_complete) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8444
ioc_info(ioc, "detecting: handle(0x%04x),\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8447
rc = _scsih_wait_for_target_to_become_ready(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8451
dewtprintk(ioc, ioc_info(ioc, "%s:\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8456
(ioc->hba_mpi_version_belonged != MPI2_VERSION)) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8460
dewtprintk(ioc, ioc_info(ioc, "%s:\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8469
ioc_info(ioc, "chassis slot(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8482
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8489
if (_scsih_get_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8492
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8504
sas_device->port = mpt3sas_get_port_by_id(ioc, port_id, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8506
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8538
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8542
if (ioc->wait_for_discovery_to_complete)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8543
_scsih_sas_device_init_add(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8545
_scsih_sas_device_add(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8558
_scsih_remove_device(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8563
if ((ioc->pdev->subsystem_vendor == PCI_VENDOR_ID_IBM) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8565
_scsih_turn_off_pfa_led(ioc, sas_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8569
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8570
ioc_info(ioc, "%s: enter: handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8574
dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8580
_scsih_ublock_io_device(ioc, sas_device->sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8586
if (!ioc->hide_drives)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8587
mpt3sas_transport_port_remove(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8592
ioc_info(ioc, "removing handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8595
_scsih_display_enclosure_chassis_info(ioc, sas_device, NULL, NULL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8597
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8598
ioc_info(ioc, "%s: exit: handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8601
dewtprintk(ioc, _scsih_display_enclosure_chassis_info(ioc, sas_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8612
_scsih_sas_topology_change_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8640
ioc_info(ioc, "sas topology change: (%s)\n", status_str);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
867
mpt3sas_get_sdev_by_addr(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8690
_scsih_sas_topology_change_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
87
_scsih_ata_pass_thru_idd(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 *is_ssd_device,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8709
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8710
_scsih_sas_topology_change_event_debug(ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8712
if (ioc->shost_recovery || ioc->remove_host || ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8715
if (!ioc->sas_hba.num_phys)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8716
_scsih_sas_host_add(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8718
_scsih_sas_host_refresh(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8721
dewtprintk(ioc, ioc_info(ioc, "ignoring expander event\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8726
port = mpt3sas_get_port_by_id(ioc, event_data->PhysicalPort, 0);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
873
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8730
if (_scsih_expander_add(ioc, parent_handle) != 0)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8733
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8734
sas_expander = mpt3sas_scsih_expander_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
874
sas_device = __mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8740
} else if (parent_handle < ioc->sas_hba.num_phys) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8741
sas_address = ioc->sas_hba.sas_address;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8742
max_phys = ioc->sas_hba.num_phys;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8744
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8747
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8752
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8753
ioc_info(ioc, "ignoring expander event\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8756
if (ioc->remove_host || ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
876
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8769
dewtprintk(ioc, ioc_info(ioc, "ignoring\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8776
dewtprintk(ioc, ioc_info(ioc, "ignoring Target not responding\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8789
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8795
mpt3sas_transport_update_links(ioc, sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8801
_scsih_check_device(ioc, sas_address, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8810
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8811
sas_device = __mpt3sas_get_sdev_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8813
spin_unlock_irqrestore(&ioc->sas_device_lock,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
882
__mpt3sas_get_sdev_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8821
if (!test_bit(handle, ioc->pend_os_device_add))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8824
dewtprintk(ioc, ioc_info(ioc, "handle(0x%04x) device not found: convert\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8834
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8837
mpt3sas_transport_update_links(ioc, sas_address,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8843
rc = _scsih_add_device(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8856
_scsih_device_remove_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
886
assert_spin_locked(&ioc->sas_device_lock);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8864
mpt3sas_expander_remove(ioc, sas_address, port);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8876
_scsih_sas_device_status_change_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
888
list_for_each_entry(sas_device, &ioc->sas_device_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
892
list_for_each_entry(sas_device, &ioc->sas_device_init_list, list)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8925
ioc_info(ioc, "device status change: (%s)\thandle(0x%04x), sas address(0x%016llx), tag(%d)",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8942
_scsih_sas_device_status_change_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8953
if ((ioc->facts.HeaderVersion >> 8) < 0xC)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8962
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8964
sas_device = __mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8966
mpt3sas_get_port_by_id(ioc, event_data->PhysicalPort, 0));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8981
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8982
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
8991
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
90
_scsih_wait_for_device_to_become_ready(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9005
_scsih_check_pcie_access_status(struct MPT3SAS_ADAPTER *ioc, u64 wwid,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9021
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9070
ioc_err(ioc, "NVMe discovery error(0x%02x): wwid(0x%016llx), handle(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9078
ioc_info(ioc, "NVMe discovery error(%s): wwid(0x%016llx), handle(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9090
_scsih_pcie_device_remove_from_sml(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9095
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9096
ioc_info(ioc, "%s: enter: handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9100
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9101
ioc_info(ioc, "%s: enter: enclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9106
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9107
ioc_info(ioc, "%s: enter: enclosure level(0x%04x), connector name(%s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9115
_scsih_ublock_io_device(ioc, pcie_device->wwid, NULL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9119
ioc_info(ioc, "removing handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9122
ioc_info(ioc, "removing : enclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9126
ioc_info(ioc, "removing: enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
913
mpt3sas_get_sdev_by_handle(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9133
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9134
ioc_info(ioc, "%s: exit: handle(0x%04x), wwid(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9138
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9139
ioc_info(ioc, "%s: exit: enclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9144
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9145
ioc_info(ioc, "%s: exit: enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9160
_scsih_pcie_check_device(struct MPT3SAS_ADAPTER *ioc, u16 handle)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9172
if ((mpt3sas_config_get_pcie_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
918
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9186
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9187
pcie_device = __mpt3sas_get_pdev_by_wwid(ioc, wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
919
sas_device = __mpt3sas_get_sdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9190
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
920
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9219
ioc_info(ioc, "device is not present handle(0x%04x), flags!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9221
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9227
if (_scsih_check_pcie_access_status(ioc, wwid, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9229
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9234
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9238
_scsih_ublock_io_device_wait(ioc, wwid, NULL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9240
_scsih_ublock_io_device(ioc, wwid, NULL);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9256
_scsih_pcie_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 retry_count)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9270
if ((mpt3sas_config_get_pcie_device_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9272
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9279
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9284
set_bit(handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9290
ioc_err(ioc, "device is not present handle(0x04%x)!!!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9296
if (_scsih_check_pcie_access_status(ioc, wwid, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9304
pcie_device = mpt3sas_get_pdev_by_wwid(ioc, wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9306
clear_bit(handle, ioc->pend_os_device_add);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9317
if (mpt3sas_config_get_pcie_device_pg2(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9320
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9329
ioc_err(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
933
_scsih_display_enclosure_chassis_info(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9335
if (!ioc->tm_custom_handling) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9347
if ((!ioc->wait_for_discovery_to_complete) &&
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9351
ioc_info(ioc, "detecting: handle(0x%04x),\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9355
rc = _scsih_wait_for_target_to_become_ready(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9359
dewtprintk(ioc, ioc_info(ioc, "%s:\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9369
dewtprintk(ioc, ioc_info(ioc, "%s: device not ready: enclosure\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9385
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9391
pcie_device->id = ioc->pcie_target_id++;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9419
mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9437
if (pcie_device->shutdown_latency > ioc->max_shutdown_latency)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9438
ioc->max_shutdown_latency =
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9448
if (ioc->wait_for_discovery_to_complete)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9449
_scsih_pcie_device_init_add(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9451
_scsih_pcie_device_add(ioc, pcie_device);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9465
_scsih_pcie_topology_change_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9493
ioc_info(ioc, "pcie topology change: (%s)\n", status_str);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9545
_scsih_pcie_topology_change_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9559
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9560
_scsih_pcie_topology_change_event_debug(ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9562
if (ioc->shost_recovery || ioc->remove_host ||
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9563
ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9567
dewtprintk(ioc, ioc_info(ioc, "ignoring switch event\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9574
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9575
ioc_info(ioc, "ignoring switch event\n"));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9578
if (ioc->remove_host || ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9593
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9600
_scsih_pcie_check_device(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9608
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9609
pcie_device = __mpt3sas_get_pdev_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9610
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9617
if (!test_bit(handle, ioc->pend_os_device_add))
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9620
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9621
ioc_info(ioc, "handle(0x%04x) device not found: convert event to a device add\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9628
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9633
rc = _scsih_pcie_add_device(ioc, handle, fw_event->retries[i]);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9648
_scsih_pcie_device_remove_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9662
_scsih_pcie_device_status_change_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
970
ioc_info(ioc, "enclosure logical id(0x%016llx), slot(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9709
ioc_info(ioc, "PCIE device status change: (%s)\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9728
_scsih_pcie_device_status_change_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9737
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9738
_scsih_pcie_device_status_change_event_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
974
ioc_info(ioc, "enclosure level(0x%04x), connector name( %s)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9747
spin_lock_irqsave(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9749
pcie_device = __mpt3sas_get_pdev_by_wwid(ioc, wwid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9767
spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9778
_scsih_sas_enclosure_dev_status_change_event_debug(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
978
ioc_info(ioc, "chassis slot(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9795
ioc_info(ioc, "enclosure status change: (%s)\n"
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9810
_scsih_sas_enclosure_dev_status_change_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9820
if (ioc->logging_level & MPT_DEBUG_EVENT_WORK_TASK)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9821
_scsih_sas_enclosure_dev_status_change_event_debug(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9824
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9829
mpt3sas_scsih_enclosure_find_by_handle(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9837
ioc_info(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9841
rc = mpt3sas_config_get_enclosure_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9853
&ioc->enclosure_list);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9874
_scsih_sas_broadcast_primitive_event(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9895
mutex_lock(&ioc->tm_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9896
ioc_info(ioc, "%s: enter: phy number(%d), width(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9899
_scsih_block_io_all_device(ioc);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9901
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9902
mpi_reply = ioc->tm_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9907
dewtprintk(ioc, ioc_info(ioc, "%s: giving up\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9910
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9911
ioc_info(ioc, "%s: %d retry\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9916
for (smid = 1; smid <= ioc->scsiio_depth; smid++) {
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9917
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9919
scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
992
_scsih_sas_device_remove(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9944
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9947
spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9948
r = mpt3sas_scsih_issue_tm(ioc, handle, 0, 0, lun,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9955
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9964
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9973
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9979
dewtprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9980
ioc_info(ioc, "%s: ABORT_TASK: giving up\n",
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9982
spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9986
if (ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_scsih.c
9989
r = mpt3sas_scsih_issue_tm(ioc, handle, sdev->channel, sdev->id,
drivers/scsi/mpt3sas/mpt3sas_scsih.c
999
ioc_info(ioc, "removing handle(0x%04x), sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1001
if (!ioc->remove_host)
drivers/scsi/mpt3sas/mpt3sas_transport.c
1003
ioc_info(ioc, "%s: removed: sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1018
mpt3sas_transport_add_host_phy(struct MPT3SAS_ADAPTER *ioc, struct _sas_phy
drivers/scsi/mpt3sas/mpt3sas_transport.c
1028
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1032
if ((_transport_set_identify(ioc, mpt3sas_phy->handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1034
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1042
_transport_set_identify(ioc, mpt3sas_phy->attached_handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1058
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1063
if ((ioc->logging_level & MPT_DEBUG_TRANSPORT))
drivers/scsi/mpt3sas/mpt3sas_transport.c
1087
mpt3sas_transport_add_expander_phy(struct MPT3SAS_ADAPTER *ioc, struct _sas_phy
drivers/scsi/mpt3sas/mpt3sas_transport.c
1097
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
110
_transport_get_port_id_by_rphy(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1101
if ((_transport_set_identify(ioc, mpt3sas_phy->handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1103
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1112
_transport_set_identify(ioc, mpt3sas_phy->attached_handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1129
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1134
if ((ioc->logging_level & MPT_DEBUG_TRANSPORT))
drivers/scsi/mpt3sas/mpt3sas_transport.c
1159
mpt3sas_transport_update_links(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1168
if (ioc->shost_recovery || ioc->pci_error_recovery)
drivers/scsi/mpt3sas/mpt3sas_transport.c
1171
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1172
sas_node = _transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1175
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1181
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1183
_transport_set_identify(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1185
if ((sas_node->handle <= ioc->sas_hba.num_phys) &&
drivers/scsi/mpt3sas/mpt3sas_transport.c
1186
(ioc->multipath_on_hba)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1188
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1195
mpt3sas_transport_add_phy_to_an_existing_port(ioc, sas_node,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1206
if ((ioc->logging_level & MPT_DEBUG_TRANSPORT))
drivers/scsi/mpt3sas/mpt3sas_transport.c
123
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
125
&ioc->sas_expander_list, list) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1266
_transport_get_expander_phy_error_log(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1281
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1282
ioc_info(ioc, "%s: host reset in progress!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1286
mutex_lock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1288
if (ioc->transport_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1289
ioc_err(ioc, "%s: transport_cmds in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1293
ioc->transport_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1295
rc = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1299
smid = mpt3sas_base_get_smid(ioc, ioc->transport_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1301
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1306
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1307
ioc->transport_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_transport.c
131
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1311
data_out = dma_alloc_coherent(&ioc->pdev->dev, sz, &data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1317
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
133
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
134
sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1340
ioc->build_sg(ioc, psge, data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1345
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1346
ioc_info(ioc, "phy_error_log - send to sas_addr(0x%016llx), phy(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1349
init_completion(&ioc->transport_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1350
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1351
wait_for_completion_timeout(&ioc->transport_cmds.done, 10*HZ);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1353
if (!(ioc->transport_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1354
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1357
if (!(ioc->transport_cmds.status & MPT3_CMD_RESET))
drivers/scsi/mpt3sas/mpt3sas_transport.c
1362
dtransportprintk(ioc, ioc_info(ioc, "phy_error_log - complete\n"));
drivers/scsi/mpt3sas/mpt3sas_transport.c
1364
if (ioc->transport_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1366
mpi_reply = ioc->transport_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1368
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1369
ioc_info(ioc, "phy_error_log - reply data transfer size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1379
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1380
ioc_info(ioc, "phy_error_log - function_result(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
139
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1393
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1394
ioc_info(ioc, "phy_error_log - no reply\n"));
drivers/scsi/mpt3sas/mpt3sas_transport.c
1398
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1400
ioc->transport_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1402
dma_free_coherent(&ioc->pdev->dev, sz, data_out, data_out_dma);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1404
mutex_unlock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1418
struct MPT3SAS_ADAPTER *ioc = phy_to_ioc(phy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1425
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1426
if (_transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1428
mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1429
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1432
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1434
if (phy->identify.sas_address != ioc->sas_hba.sas_address)
drivers/scsi/mpt3sas/mpt3sas_transport.c
1435
return _transport_get_expander_phy_error_log(ioc, phy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1438
if ((mpt3sas_config_get_phy_pg1(ioc, &mpi_reply, &phy_pg1,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1440
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1446
ioc_info(ioc, "phy(%d), ioc_status (0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1472
struct MPT3SAS_ADAPTER *ioc = rphy_to_ioc(rphy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1477
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1478
sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1488
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1501
struct MPT3SAS_ADAPTER *ioc = rphy_to_ioc(rphy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1506
spin_lock_irqsave(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1507
sas_device = __mpt3sas_get_sdev_by_rphy(ioc, rphy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1514
spin_unlock_irqrestore(&ioc->sas_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1557
_transport_expander_phy_control(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1572
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1573
ioc_info(ioc, "%s: host reset in progress!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1577
mutex_lock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1579
if (ioc->transport_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1580
ioc_err(ioc, "%s: transport_cmds in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1584
ioc->transport_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1586
rc = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1590
smid = mpt3sas_base_get_smid(ioc, ioc->transport_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1592
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1597
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1598
ioc->transport_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1602
data_out = dma_alloc_coherent(&ioc->pdev->dev, sz, &data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1608
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1636
ioc->build_sg(ioc, psge, data_out_dma,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1641
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1642
ioc_info(ioc, "phy_control - send to sas_addr(0x%016llx), phy(%d), opcode(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1645
init_completion(&ioc->transport_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1646
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1647
wait_for_completion_timeout(&ioc->transport_cmds.done, 10*HZ);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1649
if (!(ioc->transport_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1650
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1653
if (!(ioc->transport_cmds.status & MPT3_CMD_RESET))
drivers/scsi/mpt3sas/mpt3sas_transport.c
1658
dtransportprintk(ioc, ioc_info(ioc, "phy_control - complete\n"));
drivers/scsi/mpt3sas/mpt3sas_transport.c
1660
if (ioc->transport_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1662
mpi_reply = ioc->transport_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1664
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1665
ioc_info(ioc, "phy_control - reply data transfer size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1675
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1676
ioc_info(ioc, "phy_control - function_result(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1681
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1682
ioc_info(ioc, "phy_control - no reply\n"));
drivers/scsi/mpt3sas/mpt3sas_transport.c
1686
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1688
ioc->transport_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_transport.c
1690
dma_free_coherent(&ioc->pdev->dev, sz, data_out,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1693
mutex_unlock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1707
struct MPT3SAS_ADAPTER *ioc = phy_to_ioc(phy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1714
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1715
if (_transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1717
mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1718
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1721
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1724
if (phy->identify.sas_address != ioc->sas_hba.sas_address)
drivers/scsi/mpt3sas/mpt3sas_transport.c
1725
return _transport_expander_phy_control(ioc, phy,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1736
if ((mpt3sas_base_sas_iounit_control(ioc, &mpi_reply, &mpi_request))) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1737
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1743
ioc_info(ioc, "phy(%d), ioc_status(0x%04x), loginfo(0x%08x)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1761
struct MPT3SAS_ADAPTER *ioc = phy_to_ioc(phy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1773
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1774
if (_transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1776
mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1777
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1780
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1783
if (phy->identify.sas_address != ioc->sas_hba.sas_address)
drivers/scsi/mpt3sas/mpt3sas_transport.c
1784
return _transport_expander_phy_control(ioc, phy,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1791
sz = struct_size(sas_iounit_pg0, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1794
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1799
if ((mpt3sas_config_get_sas_iounit_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1801
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1809
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1816
for (i = 0, discovery_active = 0; i < ioc->sas_hba.num_phys ; i++) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1819
ioc_err(ioc, "discovery is active on port = %d, phy = %d: unable to enable/disable phys, try again later!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1831
sz = struct_size(sas_iounit_pg1, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1834
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1839
if ((mpt3sas_config_get_sas_iounit_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1841
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1849
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1856
for (i = 0; i < ioc->sas_hba.num_phys ; i++) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1875
mpt3sas_config_set_sas_iounit_pg1(ioc, &mpi_reply, sas_iounit_pg1, sz);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1899
struct MPT3SAS_ADAPTER *ioc = phy_to_ioc(phy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1911
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1912
if (_transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1914
mpt3sas_get_port_by_id(ioc, port_id, 0)) == NULL) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1915
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1918
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1931
if (phy->identify.sas_address != ioc->sas_hba.sas_address) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1934
return _transport_expander_phy_control(ioc, phy,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1941
sz = struct_size(sas_iounit_pg1, PhyData, ioc->sas_hba.num_phys);
drivers/scsi/mpt3sas/mpt3sas_transport.c
1944
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1949
if ((mpt3sas_config_get_sas_iounit_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1951
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1959
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1965
for (i = 0; i < ioc->sas_hba.num_phys; i++) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
1968
(ioc->sas_hba.phy[i].phy->minimum_linkrate +
drivers/scsi/mpt3sas/mpt3sas_transport.c
1969
(ioc->sas_hba.phy[i].phy->maximum_linkrate << 4));
drivers/scsi/mpt3sas/mpt3sas_transport.c
1977
if (mpt3sas_config_set_sas_iounit_pg1(ioc, &mpi_reply, sas_iounit_pg1,
drivers/scsi/mpt3sas/mpt3sas_transport.c
1979
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
1989
if (!mpt3sas_config_get_phy_pg0(ioc, &mpi_reply, &phy_pg0,
drivers/scsi/mpt3sas/mpt3sas_transport.c
205
_transport_set_identify(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2051
struct MPT3SAS_ADAPTER *ioc = shost_priv(shost);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2065
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
2066
ioc_info(ioc, "%s: host reset in progress!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2071
rc = mutex_lock_interruptible(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2075
if (ioc->transport_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
2076
ioc_err(ioc, "%s: transport_cmds in use\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
2081
ioc->transport_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_transport.c
2083
rc = _transport_map_smp_buffer(&ioc->pdev->dev, &job->request_payload,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2093
rc = _transport_map_smp_buffer(&ioc->pdev->dev, &job->reply_payload,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2098
rc = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2102
smid = mpt3sas_base_get_smid(ioc, ioc->transport_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2104
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2110
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2111
ioc->transport_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_transport.c
2115
mpi_request->PhysicalPort = _transport_get_port_id_by_rphy(ioc, rphy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2118
cpu_to_le64(ioc->sas_hba.sas_address);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2122
ioc->build_sg(ioc, psge, dma_addr_out, dma_len_out - 4, dma_addr_in,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2125
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2126
ioc_info(ioc, "%s: sending smp request\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_transport.c
2128
init_completion(&ioc->transport_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2129
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
213
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
2130
wait_for_completion_timeout(&ioc->transport_cmds.done, 10*HZ);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2132
if (!(ioc->transport_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
2133
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2136
if (!(ioc->transport_cmds.status & MPT3_CMD_RESET)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
2137
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_transport.c
214
ioc_info(ioc, "%s: host reset in progress!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
2143
dtransportprintk(ioc, ioc_info(ioc, "%s - complete\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_transport.c
2145
if (!(ioc->transport_cmds.status & MPT3_CMD_REPLY_VALID)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
2146
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2147
ioc_info(ioc, "%s: no reply\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_transport.c
2152
mpi_reply = ioc->transport_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_transport.c
2154
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2155
ioc_info(ioc, "%s: reply data transfer size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
2171
_transport_unmap_smp_buffer(&ioc->pdev->dev, &job->reply_payload,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2174
_transport_unmap_smp_buffer(&ioc->pdev->dev, &job->request_payload,
drivers/scsi/mpt3sas/mpt3sas_transport.c
2177
ioc->transport_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_transport.c
2178
mutex_unlock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
218
if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
drivers/scsi/mpt3sas/mpt3sas_transport.c
220
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
228
ioc_err(ioc, "handle(0x%04x), ioc_status(0x%04x) failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
295
mpt3sas_transport_done(struct MPT3SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
drivers/scsi/mpt3sas/mpt3sas_transport.c
300
mpi_reply = mpt3sas_base_get_reply_virt_addr(ioc, reply);
drivers/scsi/mpt3sas/mpt3sas_transport.c
301
if (ioc->transport_cmds.status == MPT3_CMD_NOT_USED)
drivers/scsi/mpt3sas/mpt3sas_transport.c
303
if (ioc->transport_cmds.smid != smid)
drivers/scsi/mpt3sas/mpt3sas_transport.c
305
ioc->transport_cmds.status |= MPT3_CMD_COMPLETE;
drivers/scsi/mpt3sas/mpt3sas_transport.c
307
memcpy(ioc->transport_cmds.reply, mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_transport.c
309
ioc->transport_cmds.status |= MPT3_CMD_REPLY_VALID;
drivers/scsi/mpt3sas/mpt3sas_transport.c
311
ioc->transport_cmds.status &= ~MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_transport.c
312
complete(&ioc->transport_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_transport.c
356
_transport_expander_report_manufacture(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
373
if (ioc->shost_recovery || ioc->pci_error_recovery) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
374
ioc_info(ioc, "%s: host reset in progress!\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
378
mutex_lock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
380
if (ioc->transport_cmds.status != MPT3_CMD_NOT_USED) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
381
ioc_err(ioc, "%s: transport_cmds in use\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
385
ioc->transport_cmds.status = MPT3_CMD_PENDING;
drivers/scsi/mpt3sas/mpt3sas_transport.c
387
rc = mpt3sas_wait_for_ioc(ioc, IOC_OPERATIONAL_WAIT_COUNT);
drivers/scsi/mpt3sas/mpt3sas_transport.c
391
smid = mpt3sas_base_get_smid(ioc, ioc->transport_cb_idx);
drivers/scsi/mpt3sas/mpt3sas_transport.c
393
ioc_err(ioc, "%s: failed obtaining a smid\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
399
mpi_request = mpt3sas_base_get_msg_frame(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
400
ioc->transport_cmds.smid = smid;
drivers/scsi/mpt3sas/mpt3sas_transport.c
404
data_out = dma_alloc_coherent(&ioc->pdev->dev, data_out_sz + data_in_sz,
drivers/scsi/mpt3sas/mpt3sas_transport.c
410
mpt3sas_base_free_smid(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
429
ioc->build_sg(ioc, psge, data_out_dma, data_out_sz, data_in_dma,
drivers/scsi/mpt3sas/mpt3sas_transport.c
432
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
433
ioc_info(ioc, "report_manufacture - send to sas_addr(0x%016llx)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
435
init_completion(&ioc->transport_cmds.done);
drivers/scsi/mpt3sas/mpt3sas_transport.c
436
ioc->put_smid_default(ioc, smid);
drivers/scsi/mpt3sas/mpt3sas_transport.c
437
wait_for_completion_timeout(&ioc->transport_cmds.done, 10*HZ);
drivers/scsi/mpt3sas/mpt3sas_transport.c
439
if (!(ioc->transport_cmds.status & MPT3_CMD_COMPLETE)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
440
ioc_err(ioc, "%s: timeout\n", __func__);
drivers/scsi/mpt3sas/mpt3sas_transport.c
443
if (!(ioc->transport_cmds.status & MPT3_CMD_RESET))
drivers/scsi/mpt3sas/mpt3sas_transport.c
448
dtransportprintk(ioc, ioc_info(ioc, "report_manufacture - complete\n"));
drivers/scsi/mpt3sas/mpt3sas_transport.c
450
if (ioc->transport_cmds.status & MPT3_CMD_REPLY_VALID) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
453
mpi_reply = ioc->transport_cmds.reply;
drivers/scsi/mpt3sas/mpt3sas_transport.c
455
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
456
ioc_info(ioc, "report_manufacture - reply data transfer size(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
477
dtransportprintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
478
ioc_info(ioc, "report_manufacture - no reply\n"));
drivers/scsi/mpt3sas/mpt3sas_transport.c
482
mpt3sas_base_hard_reset_handler(ioc, FORCE_BIG_HAMMER);
drivers/scsi/mpt3sas/mpt3sas_transport.c
484
ioc->transport_cmds.status = MPT3_CMD_NOT_USED;
drivers/scsi/mpt3sas/mpt3sas_transport.c
486
dma_free_coherent(&ioc->pdev->dev, data_out_sz + data_in_sz,
drivers/scsi/mpt3sas/mpt3sas_transport.c
489
mutex_unlock(&ioc->transport_cmds.mutex);
drivers/scsi/mpt3sas/mpt3sas_transport.c
500
_transport_delete_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
512
ioc->logging_level |= MPT_DEBUG_TRANSPORT;
drivers/scsi/mpt3sas/mpt3sas_transport.c
514
mpt3sas_device_remove_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
518
mpt3sas_expander_remove(ioc, sas_address, port);
drivers/scsi/mpt3sas/mpt3sas_transport.c
519
ioc->logging_level &= ~MPT_DEBUG_TRANSPORT;
drivers/scsi/mpt3sas/mpt3sas_transport.c
529
_transport_delete_phy(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
551
_transport_add_phy(struct MPT3SAS_ADAPTER *ioc, struct _sas_port *mpt3sas_port,
drivers/scsi/mpt3sas/mpt3sas_transport.c
575
mpt3sas_transport_add_phy_to_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
600
_transport_add_phy(ioc, mpt3sas_port, mpt3sas_phy);
drivers/scsi/mpt3sas/mpt3sas_transport.c
613
mpt3sas_transport_del_phy_from_an_existing_port(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
633
if (mpt3sas_port->num_phys == 1 && !ioc->shost_recovery)
drivers/scsi/mpt3sas/mpt3sas_transport.c
634
_transport_delete_port(ioc, mpt3sas_port);
drivers/scsi/mpt3sas/mpt3sas_transport.c
636
_transport_delete_phy(ioc, mpt3sas_port,
drivers/scsi/mpt3sas/mpt3sas_transport.c
653
_transport_sanity_check(struct MPT3SAS_ADAPTER *ioc, struct _sas_node *sas_node,
drivers/scsi/mpt3sas/mpt3sas_transport.c
664
mpt3sas_transport_del_phy_from_an_existing_port(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
682
mpt3sas_transport_port_add(struct MPT3SAS_ADAPTER *ioc, u16 handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
696
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
703
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
710
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
711
sas_node = _transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
713
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
716
ioc_err(ioc, "%s: Could not find parent sas_address(0x%016llx)!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
721
if ((_transport_set_identify(ioc, handle,
drivers/scsi/mpt3sas/mpt3sas_transport.c
723
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
729
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
735
_transport_sanity_check(ioc, sas_node,
drivers/scsi/mpt3sas/mpt3sas_transport.c
747
if (sas_node->handle <= ioc->sas_hba.num_phys) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
753
vphy = mpt3sas_get_vphy_by_phy(ioc, hba_port, i);
drivers/scsi/mpt3sas/mpt3sas_transport.c
755
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
763
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
769
sas_device = mpt3sas_get_sdev_by_addr(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
773
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
781
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
787
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
794
if ((ioc->logging_level & MPT_DEBUG_TRANSPORT))
drivers/scsi/mpt3sas/mpt3sas_transport.c
809
if (sas_node->handle <= ioc->sas_hba.num_phys) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
820
if (sas_node->handle <= ioc->sas_hba.num_phys)
drivers/scsi/mpt3sas/mpt3sas_transport.c
826
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
834
ioc_err(ioc, "failure at %s:%d/%s()!\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
851
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
853
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
860
_transport_expander_report_manufacture(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
888
mpt3sas_transport_port_remove(struct MPT3SAS_ADAPTER *ioc, u64 sas_address,
drivers/scsi/mpt3sas/mpt3sas_transport.c
903
spin_lock_irqsave(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
904
sas_node = _transport_sas_node_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
907
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
92
_transport_sas_node_find_by_sas_address(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
922
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
926
if (sas_node->handle <= ioc->sas_hba.num_phys &&
drivers/scsi/mpt3sas/mpt3sas_transport.c
927
(ioc->multipath_on_hba)) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
933
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
943
&ioc->port_table_list, list) {
drivers/scsi/mpt3sas/mpt3sas_transport.c
95
if (ioc->sas_hba.sas_address == sas_address)
drivers/scsi/mpt3sas/mpt3sas_transport.c
958
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
96
return &ioc->sas_hba;
drivers/scsi/mpt3sas/mpt3sas_transport.c
972
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
98
return mpt3sas_scsih_expander_find_by_sas_address(ioc,
drivers/scsi/mpt3sas/mpt3sas_transport.c
987
spin_unlock_irqrestore(&ioc->sas_node_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_transport.c
991
if ((ioc->logging_level & MPT_DEBUG_TRANSPORT))
drivers/scsi/mpt3sas/mpt3sas_transport.c
992
ioc_info(ioc, "remove: sas_addr(0x%016llx), phy(%d)\n",
drivers/scsi/mpt3sas/mpt3sas_transport.c
996
if (!ioc->remove_host)
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
100
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
102
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: exit\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
112
mpt3sas_process_trigger_data(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
118
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: enter\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
121
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
127
ioc_info(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
131
mpt3sas_send_diag_release(ioc, MPI2_DIAG_BUF_TYPE_TRACE,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
135
ioc->htb_rel.buffer_rel_condition = MPT3_DIAG_BUFFER_REL_TRIGGER;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
137
ioc->htb_rel.trigger_type = event_data->trigger_type;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
140
memcpy(&ioc->htb_rel.trigger_info_dwords,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
145
memcpy(&ioc->htb_rel.trigger_info_dwords,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
150
ioc->htb_rel.trigger_info_dwords[0] =
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
154
memcpy(&ioc->htb_rel.trigger_info_dwords,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
159
ioc_err(ioc, "%d - Is not a valid Trigger type\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
164
_mpt3sas_raise_sigio(ioc, event_data);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
166
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: exit\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
177
mpt3sas_trigger_master(struct MPT3SAS_ADAPTER *ioc, u32 trigger_bitmask)
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
183
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
190
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
192
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
197
if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
199
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
205
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
206
ioc_info(ioc, "%s: enter - trigger_bitmask = 0x%08x\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
210
if (ioc->diag_trigger_active) {
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
211
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
216
if (ioc->diag_trigger_master.MasterData & trigger_bitmask) {
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
218
ioc->diag_trigger_active = 1;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
219
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
220
ioc_info(ioc, "%s: setting diag_trigger_active flag\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
223
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
234
ioc->htb_rel.trigger_type = MPT3SAS_TRIGGER_MASTER;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
235
ioc->htb_rel.trigger_info_dwords[0] = trigger_bitmask;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
236
if (ioc->reset_from_user)
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
237
ioc->htb_rel.trigger_info_dwords[1] =
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
239
_mpt3sas_raise_sigio(ioc, &event_data);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
241
mpt3sas_send_trigger_data_event(ioc, &event_data);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
244
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: exit\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
256
mpt3sas_trigger_event(struct MPT3SAS_ADAPTER *ioc, u16 event,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
265
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
268
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
270
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
275
if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
277
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
281
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
282
ioc_info(ioc, "%s: enter - event = 0x%04x, log_entry_qualifier = 0x%04x\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
286
if (ioc->diag_trigger_active) {
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
287
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
292
event_trigger = ioc->diag_trigger_event.EventTriggerEntry;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
293
for (i = 0 , found_match = 0; i < ioc->diag_trigger_event.ValidEntries
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
304
ioc->diag_trigger_active = 1;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
305
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
306
ioc_info(ioc, "%s: setting diag_trigger_active flag\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
309
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
314
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
315
ioc_info(ioc, "%s: setting diag_trigger_active flag\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
321
mpt3sas_send_trigger_data_event(ioc, &event_data);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
323
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: exit\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
336
mpt3sas_trigger_scsi(struct MPT3SAS_ADAPTER *ioc, u8 sense_key, u8 asc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
345
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
348
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
350
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
355
if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
357
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
361
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
362
ioc_info(ioc, "%s: enter - sense_key = 0x%02x, asc = 0x%02x, ascq = 0x%02x\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
366
if (ioc->diag_trigger_active) {
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
367
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
372
scsi_trigger = ioc->diag_trigger_scsi.SCSITriggerEntry;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
373
for (i = 0 , found_match = 0; i < ioc->diag_trigger_scsi.ValidEntries
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
382
ioc->diag_trigger_active = 1;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
384
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
389
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
390
ioc_info(ioc, "%s: setting diag_trigger_active flag\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
397
mpt3sas_send_trigger_data_event(ioc, &event_data);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
399
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: exit\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
411
mpt3sas_trigger_mpi(struct MPT3SAS_ADAPTER *ioc, u16 ioc_status, u32 loginfo)
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
419
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
422
if ((ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
424
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
429
if (ioc->diag_buffer_status[MPI2_DIAG_BUF_TYPE_TRACE] &
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
431
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
435
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
436
ioc_info(ioc, "%s: enter - ioc_status = 0x%04x, loginfo = 0x%08x\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
440
if (ioc->diag_trigger_active) {
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
441
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
446
mpi_trigger = ioc->diag_trigger_mpi.MPITriggerEntry;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
447
for (i = 0 , found_match = 0; i < ioc->diag_trigger_mpi.ValidEntries
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
455
ioc->diag_trigger_active = 1;
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
457
spin_unlock_irqrestore(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
462
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
463
ioc_info(ioc, "%s: setting diag_trigger_active flag\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
469
mpt3sas_send_trigger_data_event(ioc, &event_data);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
471
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: exit\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
68
_mpt3sas_raise_sigio(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
75
dTriggerDiagPrintk(ioc, ioc_info(ioc, "%s: enter\n", __func__));
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
87
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
88
ioc_info(ioc, "%s: add to driver event log\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
90
mpt3sas_ctl_add_to_event_log(ioc, mpi_reply);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
95
spin_lock_irqsave(&ioc->diag_trigger_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
96
dTriggerDiagPrintk(ioc,
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
97
ioc_info(ioc, "%s: clearing diag_trigger_active flag\n",
drivers/scsi/mpt3sas/mpt3sas_trigger_diag.c
99
ioc->diag_trigger_active = 0;
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
114
mpt3sas_init_warpdrive_properties(struct MPT3SAS_ADAPTER *ioc,
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
126
if (!ioc->is_warpdrive)
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
129
if (ioc->mfg_pg10_hide_flag == MFG_PAGE10_EXPOSE_ALL_DISKS) {
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
130
ioc_info(ioc, "WarpDrive : Direct IO is disabled globally as drives are exposed\n");
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
133
if (mpt3sas_get_num_volumes(ioc) > 1) {
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
134
_warpdrive_disable_ddio(ioc);
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
135
ioc_info(ioc, "WarpDrive : Direct IO is disabled globally as number of drives > 1\n");
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
138
if ((mpt3sas_config_get_number_pds(ioc, raid_device->handle,
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
140
ioc_info(ioc, "WarpDrive : Direct IO is disabled Failure in computing number of drives\n");
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
147
ioc_info(ioc, "WarpDrive : Direct IO is disabled Memory allocation failure for RVPG0\n");
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
151
if ((mpt3sas_config_get_raid_volume_pg0(ioc, &mpi_reply, vol_pg0,
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
153
ioc_info(ioc, "WarpDrive : Direct IO is disabled Failure in retrieving RVPG0\n");
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
163
ioc_warn(ioc, "WarpDrive : Direct IO is disabled for the drive with handle(0x%04x): num_mem=%d, max_mem_allowed=%d\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
169
if (mpt3sas_config_get_phys_disk_pg0(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
174
ioc_info(ioc, "WarpDrive : Direct IO is disabled for the drive with handle(0x%04x) member handle retrieval failed for member number=%d\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
182
ioc_info(ioc, "WarpDrive : Direct IO is disabled for the drive with handle(0x%04x) member handle (0x%04x) unsupported max lba 0x%016llx\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
197
ioc_info(ioc, "WarpDrive : Direct IO is disabled for the drive with handle(0x%04x): type=%d, s_sz=%uK, blk_size=%u\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
208
ioc_info(ioc, "WarpDrive : Direct IO is disabled for the drive with handle(0x%04x) invalid stripe sz %uK\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
218
ioc_info(ioc, "WarpDrive : Direct IO is disabled for the drive with handle(0x%04x) invalid block sz %u\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
225
ioc_info(ioc, "WarpDrive : Direct IO is Enabled for the drive with handle(0x%04x)\n",
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
255
mpt3sas_setup_direct_io(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
54
_warpdrive_disable_ddio(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
64
while (!(mpt3sas_config_get_raid_volume_pg1(ioc, &mpi_reply,
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
71
spin_lock_irqsave(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
72
raid_device = mpt3sas_raid_device_find_by_handle(ioc, handle);
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
75
spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
86
mpt3sas_get_num_volumes(struct MPT3SAS_ADAPTER *ioc)
drivers/scsi/mpt3sas/mpt3sas_warpdrive.c
95
while (!(mpt3sas_config_get_raid_volume_pg1(ioc, &mpi_reply,
drivers/spi/spi-ath79.c
112
u32 ioc = sp->ioc_base;
drivers/spi/spi-ath79.c
119
out = ioc | AR71XX_SPI_IOC_DO;
drivers/spi/spi-ath79.c
121
out = ioc & ~AR71XX_SPI_IOC_DO;
drivers/spi/spidev.c
358
struct spi_ioc_transfer *ioc;
drivers/spi/spidev.c
485
ioc = spidev_get_ioc_message(cmd,
drivers/spi/spidev.c
487
if (IS_ERR(ioc)) {
drivers/spi/spidev.c
488
retval = PTR_ERR(ioc);
drivers/spi/spidev.c
491
if (!ioc)
drivers/spi/spidev.c
495
retval = spidev_message(spidev, ioc, n_ioc);
drivers/spi/spidev.c
496
kfree(ioc);
drivers/spi/spidev.c
515
struct spi_ioc_transfer *ioc;
drivers/spi/spidev.c
531
ioc = spidev_get_ioc_message(cmd, u_ioc, &n_ioc);
drivers/spi/spidev.c
532
if (IS_ERR(ioc)) {
drivers/spi/spidev.c
533
retval = PTR_ERR(ioc);
drivers/spi/spidev.c
536
if (!ioc)
drivers/spi/spidev.c
541
ioc[n].rx_buf = (uintptr_t) compat_ptr(ioc[n].rx_buf);
drivers/spi/spidev.c
542
ioc[n].tx_buf = (uintptr_t) compat_ptr(ioc[n].tx_buf);
drivers/spi/spidev.c
546
retval = spidev_message(spidev, ioc, n_ioc);
drivers/spi/spidev.c
547
kfree(ioc);
drivers/usb/cdns3/cdns3-gadget.c
1135
u32 ioc = request->no_interrupt ? 0 : TRB_IOC;
drivers/usb/cdns3/cdns3-gadget.c
1292
control |= ioc | TRB_ISP;
drivers/usb/cdns3/cdns3-gadget.c
1296
control |= pcs | ioc | TRB_ISP;
drivers/usb/cdns3/cdns3-gadget.c
1327
trb->control |= cpu_to_le32(ioc | TRB_ISP);
drivers/usb/gadget/udc/tegra-xudc.c
1086
bool ioc)
drivers/usb/gadget/udc/tegra-xudc.c
1110
trb_write_ioc(trb, ioc);
drivers/usb/gadget/udc/tegra-xudc.c
1190
bool ioc = false;
drivers/usb/gadget/udc/tegra-xudc.c
1193
ioc = true;
drivers/usb/gadget/udc/tegra-xudc.c
1195
tegra_xudc_queue_one_trb(ep, req, trb, ioc);
drivers/usb/gadget/udc/tegra-xudc.c
1206
if (ioc)
drivers/usb/gadget/udc/tegra-xudc.c
360
BUILD_TRB_RW(ioc, control, 5, 0x1)
drivers/usb/host/fhci-mem.c
104
td->ioc = ioc;
drivers/usb/host/fhci-mem.c
88
u16 interval, u16 start_frame, bool ioc)
drivers/usb/host/fhci-q.c
156
if (td->ioc)
drivers/usb/host/fhci.h
351
bool ioc; /* Inform On Completion */
drivers/usb/host/fhci.h
520
u16 interval, u16 start_frame, bool ioc);
fs/nfs/write.c
119
static void nfs_io_completion_init(struct nfs_io_completion *ioc,
fs/nfs/write.c
122
ioc->complete = complete;
fs/nfs/write.c
123
ioc->data = data;
fs/nfs/write.c
124
kref_init(&ioc->refcount);
fs/nfs/write.c
129
struct nfs_io_completion *ioc = container_of(kref,
fs/nfs/write.c
131
ioc->complete(ioc->data);
fs/nfs/write.c
132
kfree(ioc);
fs/nfs/write.c
135
static void nfs_io_completion_get(struct nfs_io_completion *ioc)
fs/nfs/write.c
137
if (ioc != NULL)
fs/nfs/write.c
138
kref_get(&ioc->refcount);
fs/nfs/write.c
141
static void nfs_io_completion_put(struct nfs_io_completion *ioc)
fs/nfs/write.c
143
if (ioc != NULL)
fs/nfs/write.c
144
kref_put(&ioc->refcount, nfs_io_completion_release);
fs/nfs/write.c
654
struct nfs_io_completion *ioc = NULL;
fs/nfs/write.c
674
ioc = nfs_io_completion_alloc(GFP_KERNEL);
fs/nfs/write.c
675
if (ioc)
fs/nfs/write.c
676
nfs_io_completion_init(ioc, nfs_io_completion_commit,
fs/nfs/write.c
686
pgio.pg_io_completion = ioc;
fs/nfs/write.c
696
nfs_io_completion_put(ioc);
include/linux/iocontext.h
119
void put_io_context(struct io_context *ioc);
include/linux/iocontext.h
130
static inline void put_io_context(struct io_context *ioc) { }
include/linux/iocontext.h
75
struct io_context *ioc;
include/linux/ioprio.h
59
struct io_context *ioc = p->io_context;
include/linux/ioprio.h
62
if (!ioc)
include/linux/ioprio.h
69
prio = ioc->ioprio;
include/trace/events/iocost.h
144
TP_PROTO(struct ioc *ioc, u64 new_vrate, u32 *missed_ppm,
include/trace/events/iocost.h
147
TP_ARGS(ioc, new_vrate, missed_ppm, rq_wait_pct, nr_lagging, nr_shortages),
include/trace/events/iocost.h
150
__string(devname, ioc_name(ioc))
include/trace/events/iocost.h
163
__entry->old_vrate = ioc->vtime_base_rate;
include/trace/events/iocost.h
165
__entry->busy_level = ioc->busy_level;
include/trace/events/iocost.h
191
__string(devname, ioc_name(iocg->ioc))
include/trace/events/iocost.h
22
__string(devname, ioc_name(iocg->ioc))
include/trace/events/iocost.h
41
__entry->vrate = iocg->ioc->vtime_base_rate;
include/trace/events/iocost.h
5
struct ioc;
include/trace/events/iocost.h
86
__string(devname, ioc_name(iocg->ioc))
include/uapi/drm/v3d_drm.h
344
__u32 ioc;
net/rxrpc/conn_event.c
102
int ret, ioc;
net/rxrpc/conn_event.c
157
ioc = 1;
net/rxrpc/conn_event.c
183
ioc = 3;
net/rxrpc/conn_event.c
196
ret = kernel_sendmsg(conn->local->socket, &msg, iov, ioc, len);
net/rxrpc/output.c
815
int ret, ioc;
net/rxrpc/output.c
844
ioc = 1;
net/rxrpc/output.c
853
ioc = 2;
net/rxrpc/output.c
862
iov_iter_kvec(&msg.msg_iter, WRITE, iov, ioc, size);
security/keys/keyctl.c
1281
unsigned ioc,
security/keys/keyctl.c
1289
ioc = 0;
security/keys/keyctl.c
1291
ret = import_iovec(ITER_SOURCE, _payload_iov, ioc,
sound/soc/sof/amd/acp.h
137
unsigned ioc : 1;
sound/soc/sof/intel/hda-loader.c
197
reinit_completion(&hda_stream->ioc);
sound/soc/sof/intel/hda-sdw-bpt.c
384
time_tx_left = wait_for_completion_timeout(&hda_tx_stream->ioc,
sound/soc/sof/intel/hda-sdw-bpt.c
411
time_rx_left = wait_for_completion_timeout(&hda_rx_stream->ioc,
sound/soc/sof/intel/hda-stream.c
119
int remain, ioc;
sound/soc/sof/intel/hda-stream.c
169
ioc = hda->no_ipc_position ?
sound/soc/sof/intel/hda-stream.c
181
period_bytes, ioc);
sound/soc/sof/intel/hda-stream.c
68
int offset, int size, int ioc)
sound/soc/sof/intel/hda-stream.c
848
complete(&hda_stream->ioc);
sound/soc/sof/intel/hda-stream.c
962
init_completion(&hda_stream->ioc);
sound/soc/sof/intel/hda-stream.c
98
bdl->ioc = (size || !ioc) ? 0 : cpu_to_le32(0x01);
sound/soc/sof/intel/hda.h
466
__le32 ioc;
sound/soc/sof/intel/hda.h
582
struct completion ioc;
tools/lib/perf/evsel.c
428
static int perf_evsel__ioctl(struct perf_evsel *evsel, int ioc, void *arg,
tools/lib/perf/evsel.c
436
return ioctl(*fd, ioc, arg);
tools/lib/perf/evsel.c
440
int ioc, void *arg,
tools/lib/perf/evsel.c
446
int err = perf_evsel__ioctl(evsel, ioc, arg, cpu_map_idx, thread);
tools/testing/selftests/sgx/load.c
108
struct sgx_enclave_add_pages ioc;
tools/testing/selftests/sgx/load.c
115
ioc.src = (uint64_t)seg->src;
tools/testing/selftests/sgx/load.c
116
ioc.offset = seg->offset;
tools/testing/selftests/sgx/load.c
117
ioc.length = seg->size;
tools/testing/selftests/sgx/load.c
118
ioc.secinfo = (unsigned long)&secinfo;
tools/testing/selftests/sgx/load.c
120
ioc.flags = SGX_PAGE_MEASURE;
tools/testing/selftests/sgx/load.c
122
ioc.flags = 0;
tools/testing/selftests/sgx/load.c
124
rc = ioctl(encl->fd, SGX_IOC_ENCLAVE_ADD_PAGES, &ioc);
tools/testing/selftests/sgx/load.c
341
struct sgx_enclave_init ioc;
tools/testing/selftests/sgx/load.c
362
ioc.sigstruct = (uint64_t)&encl->sigstruct;
tools/testing/selftests/sgx/load.c
363
ret = ioctl(encl->fd, SGX_IOC_ENCLAVE_INIT, &ioc);
tools/testing/selftests/sgx/load.c
83
struct sgx_enclave_create ioc;
tools/testing/selftests/sgx/load.c
95
ioc.src = (unsigned long)secs;
tools/testing/selftests/sgx/load.c
96
rc = ioctl(encl->fd, SGX_IOC_ENCLAVE_CREATE, &ioc);
tools/testing/selftests/sgx/main.c
1678
struct sgx_enclave_modify_types ioc;
tools/testing/selftests/sgx/main.c
1691
memset(&ioc, 0, sizeof(ioc));
tools/testing/selftests/sgx/main.c
1692
ret = ioctl(self->encl.fd, SGX_IOC_ENCLAVE_MODIFY_TYPES, &ioc);
tools/testing/selftests/sgx/main.c
1750
memset(&ioc, 0, sizeof(ioc));
tools/testing/selftests/sgx/main.c
1752
ioc.offset = encl_get_data_offset(&self->encl) + PAGE_SIZE;
tools/testing/selftests/sgx/main.c
1753
ioc.length = PAGE_SIZE;
tools/testing/selftests/sgx/main.c
1754
ioc.page_type = SGX_PAGE_TYPE_TRIM;
tools/testing/selftests/sgx/main.c
1756
ret = ioctl(self->encl.fd, SGX_IOC_ENCLAVE_MODIFY_TYPES, &ioc);
tools/testing/selftests/sgx/main.c
1761
EXPECT_EQ(ioc.result, 0);
tools/testing/selftests/sgx/main.c
1762
EXPECT_EQ(ioc.count, 4096);
tools/testing/selftests/sgx/main.c
1792
struct sgx_enclave_modify_types ioc;
tools/testing/selftests/sgx/main.c
1806
memset(&ioc, 0, sizeof(ioc));
tools/testing/selftests/sgx/main.c
1807
ret = ioctl(self->encl.fd, SGX_IOC_ENCLAVE_MODIFY_TYPES, &ioc);
tools/testing/selftests/sgx/main.c
1865
memset(&ioc, 0, sizeof(ioc));
tools/testing/selftests/sgx/main.c
1867
ioc.offset = encl_get_data_offset(&self->encl) + PAGE_SIZE;
tools/testing/selftests/sgx/main.c
1868
ioc.length = PAGE_SIZE;
tools/testing/selftests/sgx/main.c
1869
ioc.page_type = SGX_PAGE_TYPE_TRIM;
tools/testing/selftests/sgx/main.c
1871
ret = ioctl(self->encl.fd, SGX_IOC_ENCLAVE_MODIFY_TYPES, &ioc);
tools/testing/selftests/sgx/main.c
1876
EXPECT_EQ(ioc.result, 0);
tools/testing/selftests/sgx/main.c
1877
EXPECT_EQ(ioc.count, 4096);
tools/testing/selftests/sgx/main.c
722
struct sgx_enclave_restrict_permissions ioc;
tools/testing/selftests/sgx/main.c
730
memset(&ioc, 0, sizeof(ioc));
tools/testing/selftests/sgx/main.c
737
ret = ioctl(self->encl.fd, SGX_IOC_ENCLAVE_RESTRICT_PERMISSIONS, &ioc);
tools/testing/selftests/sgx/main.c
757
ioc.offset = encl_get_tcs_offset(&self->encl);
tools/testing/selftests/sgx/main.c
758
ioc.length = PAGE_SIZE;
tools/testing/selftests/sgx/main.c
759
ioc.permissions = SGX_SECINFO_R;
tools/testing/selftests/sgx/main.c
761
ret = ioctl(self->encl.fd, SGX_IOC_ENCLAVE_RESTRICT_PERMISSIONS, &ioc);
tools/testing/selftests/sgx/main.c
766
EXPECT_EQ(ioc.result, 0);
tools/testing/selftests/sgx/main.c
767
EXPECT_EQ(ioc.count, 0);