forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-13 9d77db3c730780c8ef5ccd4b66403ff5675cfe4e
kernel/drivers/net/wireless/ralink/rt2x00/rt2x00link.c
....@@ -1,19 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 Copyright (C) 2004 - 2009 Ivo van Doorn <IvDoorn@gmail.com>
34 <http://rt2x00.serialmonkey.com>
45
5
- This program is free software; you can redistribute it and/or modify
6
- it under the terms of the GNU General Public License as published by
7
- the Free Software Foundation; either version 2 of the License, or
8
- (at your option) any later version.
9
-
10
- This program is distributed in the hope that it will be useful,
11
- but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- GNU General Public License for more details.
14
-
15
- You should have received a copy of the GNU General Public License
16
- along with this program; if not, see <http://www.gnu.org/licenses/>.
176 */
187
198 /*
....@@ -395,10 +384,10 @@
395384 struct link *link = &rt2x00dev->link;
396385
397386 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) &&
398
- rt2x00dev->ops->lib->watchdog)
387
+ rt2x00dev->ops->lib->watchdog && !link->watchdog_disabled)
399388 ieee80211_queue_delayed_work(rt2x00dev->hw,
400389 &link->watchdog_work,
401
- WATCHDOG_INTERVAL);
390
+ link->watchdog_interval);
402391 }
403392
404393 void rt2x00link_stop_watchdog(struct rt2x00_dev *rt2x00dev)
....@@ -424,11 +413,16 @@
424413 if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags))
425414 ieee80211_queue_delayed_work(rt2x00dev->hw,
426415 &link->watchdog_work,
427
- WATCHDOG_INTERVAL);
416
+ link->watchdog_interval);
428417 }
429418
430419 void rt2x00link_register(struct rt2x00_dev *rt2x00dev)
431420 {
432
- INIT_DELAYED_WORK(&rt2x00dev->link.watchdog_work, rt2x00link_watchdog);
433
- INIT_DELAYED_WORK(&rt2x00dev->link.work, rt2x00link_tuner);
421
+ struct link *link = &rt2x00dev->link;
422
+
423
+ INIT_DELAYED_WORK(&link->work, rt2x00link_tuner);
424
+ INIT_DELAYED_WORK(&link->watchdog_work, rt2x00link_watchdog);
425
+
426
+ if (link->watchdog_interval == 0)
427
+ link->watchdog_interval = WATCHDOG_INTERVAL;
434428 }