3071 QPRINTK(qdev, IFUP, INFO, "Enabling NAPI for rx_ring[%d].\n",
3072 i);
3073 napi_enable(&qdev->rx_ring[i].napi);
3074 }
3075
3076 return status;
3077}
3078
3079
3080static int ql_adapter_reset(struct ql_adapter *qdev)
3081{
3082 u32 value;
3083 int max_wait_time;
3084 int status = 0;
3085 int resetCnt = 0;
3086
3087#define MAX_RESET_CNT 1
3088issueReset:
3089 resetCnt++;
3090 QPRINTK(qdev, IFDOWN, DEBUG, "Issue soft reset to chip.\n");
3091 ql_write32(qdev, RST_FO, (RST_FO_FR << 16) | RST_FO_FR);
3092
3093 max_wait_time = 3;
3094 QPRINTK(qdev, IFDOWN, DEBUG, "Wait %d seconds for reset to complete.\n",
3095 max_wait_time);
3096 do {
3097 value = ql_read32(qdev, RST_FO);
3098 if ((value & RST_FO_FR) == 0)
3099 break;
3100
3101 ssleep(1);
3102 } while ((--max_wait_time));
3103 if (value & RST_FO_FR) {
3104 QPRINTK(qdev, IFDOWN, ERR,
3105 "Stuck in SoftReset: FSC_SR:0x%08x\n", value);
3106 if (resetCnt < MAX_RESET_CNT)
3107 goto issueReset;
3108 }
3109 if (max_wait_time == 0) {
3110 status = -ETIMEDOUT;
3111 QPRINTK(qdev, IFDOWN, ERR,