diff options
Diffstat (limited to 'drivers/net/benet/be_cmds.c')
-rw-r--r-- | drivers/net/benet/be_cmds.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c index 31980f863d1..2af87f10030 100644 --- a/drivers/net/benet/be_cmds.c +++ b/drivers/net/benet/be_cmds.c | |||
@@ -357,6 +357,57 @@ static struct be_mcc_wrb *wrb_from_mccq(struct be_adapter *adapter) | |||
357 | return wrb; | 357 | return wrb; |
358 | } | 358 | } |
359 | 359 | ||
360 | /* Tell fw we're about to start firing cmds by writing a | ||
361 | * special pattern across the wrb hdr; uses mbox | ||
362 | */ | ||
363 | int be_cmd_fw_init(struct be_adapter *adapter) | ||
364 | { | ||
365 | u8 *wrb; | ||
366 | int status; | ||
367 | |||
368 | spin_lock(&adapter->mbox_lock); | ||
369 | |||
370 | wrb = (u8 *)wrb_from_mbox(adapter); | ||
371 | *wrb++ = 0xFF; | ||
372 | *wrb++ = 0x12; | ||
373 | *wrb++ = 0x34; | ||
374 | *wrb++ = 0xFF; | ||
375 | *wrb++ = 0xFF; | ||
376 | *wrb++ = 0x56; | ||
377 | *wrb++ = 0x78; | ||
378 | *wrb = 0xFF; | ||
379 | |||
380 | status = be_mbox_notify_wait(adapter); | ||
381 | |||
382 | spin_unlock(&adapter->mbox_lock); | ||
383 | return status; | ||
384 | } | ||
385 | |||
386 | /* Tell fw we're done with firing cmds by writing a | ||
387 | * special pattern across the wrb hdr; uses mbox | ||
388 | */ | ||
389 | int be_cmd_fw_clean(struct be_adapter *adapter) | ||
390 | { | ||
391 | u8 *wrb; | ||
392 | int status; | ||
393 | |||
394 | spin_lock(&adapter->mbox_lock); | ||
395 | |||
396 | wrb = (u8 *)wrb_from_mbox(adapter); | ||
397 | *wrb++ = 0xFF; | ||
398 | *wrb++ = 0xAA; | ||
399 | *wrb++ = 0xBB; | ||
400 | *wrb++ = 0xFF; | ||
401 | *wrb++ = 0xFF; | ||
402 | *wrb++ = 0xCC; | ||
403 | *wrb++ = 0xDD; | ||
404 | *wrb = 0xFF; | ||
405 | |||
406 | status = be_mbox_notify_wait(adapter); | ||
407 | |||
408 | spin_unlock(&adapter->mbox_lock); | ||
409 | return status; | ||
410 | } | ||
360 | int be_cmd_eq_create(struct be_adapter *adapter, | 411 | int be_cmd_eq_create(struct be_adapter *adapter, |
361 | struct be_queue_info *eq, int eq_delay) | 412 | struct be_queue_info *eq, int eq_delay) |
362 | { | 413 | { |