aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wl_mac80211.c12
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c13
-rw-r--r--drivers/staging/brcm80211/brcmsmac/wlc_pub.h2
-rw-r--r--drivers/staging/comedi/Kconfig5
-rw-r--r--drivers/staging/comedi/drivers/mite.c2
-rw-r--r--drivers/staging/comedi/drivers/ni_6527.c4
-rw-r--r--drivers/staging/comedi/drivers/ni_65xx.c4
-rw-r--r--drivers/staging/comedi/drivers/ni_660x.c4
-rw-r--r--drivers/staging/comedi/drivers/ni_670x.c4
-rw-r--r--drivers/staging/comedi/drivers/ni_pcidio.c4
-rw-r--r--drivers/staging/comedi/drivers/ni_pcimio.c4
-rw-r--r--drivers/staging/hv/netvsc_drv.c1
-rw-r--r--drivers/staging/intel_sst/intelmid_v2_control.c5
-rw-r--r--drivers/staging/lirc/lirc_zilog.c32
-rw-r--r--drivers/staging/zram/zram_drv.c4
15 files changed, 88 insertions, 12 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
index 54bfe22ec12..745c8874036 100644
--- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
@@ -239,9 +239,7 @@ ieee_set_channel(struct ieee80211_hw *hw, struct ieee80211_channel *chan,
239 switch (type) { 239 switch (type) {
240 case NL80211_CHAN_HT20: 240 case NL80211_CHAN_HT20:
241 case NL80211_CHAN_NO_HT: 241 case NL80211_CHAN_NO_HT:
242 WL_LOCK(wl);
243 err = wlc_set(wl->wlc, WLC_SET_CHANNEL, chan->hw_value); 242 err = wlc_set(wl->wlc, WLC_SET_CHANNEL, chan->hw_value);
244 WL_UNLOCK(wl);
245 break; 243 break;
246 case NL80211_CHAN_HT40MINUS: 244 case NL80211_CHAN_HT40MINUS:
247 case NL80211_CHAN_HT40PLUS: 245 case NL80211_CHAN_HT40PLUS:
@@ -261,6 +259,7 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed)
261 int err = 0; 259 int err = 0;
262 int new_int; 260 int new_int;
263 261
262 WL_LOCK(wl);
264 if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) { 263 if (changed & IEEE80211_CONF_CHANGE_LISTEN_INTERVAL) {
265 WL_NONE("%s: Setting listen interval to %d\n", 264 WL_NONE("%s: Setting listen interval to %d\n",
266 __func__, conf->listen_interval); 265 __func__, conf->listen_interval);
@@ -317,6 +316,7 @@ static int wl_ops_config(struct ieee80211_hw *hw, u32 changed)
317 } 316 }
318 317
319 config_out: 318 config_out:
319 WL_UNLOCK(wl);
320 return err; 320 return err;
321} 321}
322 322
@@ -435,13 +435,21 @@ wl_ops_set_tim(struct ieee80211_hw *hw, struct ieee80211_sta *sta, bool set)
435 435
436static void wl_ops_sw_scan_start(struct ieee80211_hw *hw) 436static void wl_ops_sw_scan_start(struct ieee80211_hw *hw)
437{ 437{
438 struct wl_info *wl = hw->priv;
438 WL_NONE("Scan Start\n"); 439 WL_NONE("Scan Start\n");
440 WL_LOCK(wl);
441 wlc_scan_start(wl->wlc);
442 WL_UNLOCK(wl);
439 return; 443 return;
440} 444}
441 445
442static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw) 446static void wl_ops_sw_scan_complete(struct ieee80211_hw *hw)
443{ 447{
448 struct wl_info *wl = hw->priv;
444 WL_NONE("Scan Complete\n"); 449 WL_NONE("Scan Complete\n");
450 WL_LOCK(wl);
451 wlc_scan_stop(wl->wlc);
452 WL_UNLOCK(wl);
445 return; 453 return;
446} 454}
447 455
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
index b05a491f3f6..6debd45c796 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
@@ -8496,3 +8496,16 @@ static void wlc_txq_free(struct wlc_info *wlc, struct osl_info *osh,
8496 8496
8497 kfree(qi); 8497 kfree(qi);
8498} 8498}
8499
8500/*
8501 * Flag 'scan in progress' to withold dynamic phy calibration
8502 */
8503void wlc_scan_start(struct wlc_info *wlc)
8504{
8505 wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, true);
8506}
8507
8508void wlc_scan_stop(struct wlc_info *wlc)
8509{
8510 wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_SCAN, false);
8511}
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
index 0e39414d5e5..e059ebf101c 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
@@ -566,6 +566,8 @@ extern void wlc_enable_mac(struct wlc_info *wlc);
566extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate); 566extern u16 wlc_rate_shm_offset(struct wlc_info *wlc, u8 rate);
567extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg); 567extern u32 wlc_get_rspec_history(struct wlc_bsscfg *cfg);
568extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg); 568extern u32 wlc_get_current_highest_rate(struct wlc_bsscfg *cfg);
569extern void wlc_scan_start(struct wlc_info *wlc);
570extern void wlc_scan_stop(struct wlc_info *wlc);
569 571
570static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name, 572static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name,
571 uint *arg) 573 uint *arg)
diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig
index aad47326d6d..1502d80f6f7 100644
--- a/drivers/staging/comedi/Kconfig
+++ b/drivers/staging/comedi/Kconfig
@@ -439,6 +439,7 @@ config COMEDI_NI_AT_AO
439config COMEDI_NI_ATMIO 439config COMEDI_NI_ATMIO
440 tristate "NI AT-MIO E series ISA-PNP card support" 440 tristate "NI AT-MIO E series ISA-PNP card support"
441 depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON 441 depends on ISAPNP && COMEDI_NI_TIO && COMEDI_NI_COMMON
442 select COMEDI_8255
442 default N 443 default N
443 ---help--- 444 ---help---
444 Enable support for National Instruments AT-MIO E series cards 445 Enable support for National Instruments AT-MIO E series cards
@@ -1040,6 +1041,8 @@ config COMEDI_NI_PCIDIO
1040config COMEDI_NI_PCIMIO 1041config COMEDI_NI_PCIMIO
1041 tristate "NI PCI-MIO-E series and M series support" 1042 tristate "NI PCI-MIO-E series and M series support"
1042 depends on COMEDI_NI_TIO && COMEDI_NI_COMMON 1043 depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
1044 select COMEDI_8255
1045 select COMEDI_FC
1043 default N 1046 default N
1044 ---help--- 1047 ---help---
1045 Enable support for National Instruments PCI-MIO-E series and M series 1048 Enable support for National Instruments PCI-MIO-E series and M series
@@ -1164,6 +1167,7 @@ config COMEDI_NI_LABPC_CS
1164config COMEDI_NI_MIO_CS 1167config COMEDI_NI_MIO_CS
1165 tristate "NI DAQCard E series PCMCIA support" 1168 tristate "NI DAQCard E series PCMCIA support"
1166 depends on COMEDI_NI_TIO && COMEDI_NI_COMMON 1169 depends on COMEDI_NI_TIO && COMEDI_NI_COMMON
1170 select COMEDI_8255
1167 select COMEDI_FC 1171 select COMEDI_FC
1168 default N 1172 default N
1169 ---help--- 1173 ---help---
@@ -1268,7 +1272,6 @@ config COMEDI_MITE
1268config COMEDI_NI_TIO 1272config COMEDI_NI_TIO
1269 tristate "NI general purpose counter support" 1273 tristate "NI general purpose counter support"
1270 depends on COMEDI_MITE 1274 depends on COMEDI_MITE
1271 select COMEDI_8255
1272 default N 1275 default N
1273 ---help--- 1276 ---help---
1274 Enable support for National Instruments general purpose counters. 1277 Enable support for National Instruments general purpose counters.
diff --git a/drivers/staging/comedi/drivers/mite.c b/drivers/staging/comedi/drivers/mite.c
index cd25b241cc1..fd274e9c7b7 100644
--- a/drivers/staging/comedi/drivers/mite.c
+++ b/drivers/staging/comedi/drivers/mite.c
@@ -61,8 +61,6 @@
61#define PCI_DAQ_SIZE 4096 61#define PCI_DAQ_SIZE 4096
62#define PCI_DAQ_SIZE_660X 8192 62#define PCI_DAQ_SIZE_660X 8192
63 63
64MODULE_LICENSE("GPL");
65
66struct mite_struct *mite_devices; 64struct mite_struct *mite_devices;
67EXPORT_SYMBOL(mite_devices); 65EXPORT_SYMBOL(mite_devices);
68 66
diff --git a/drivers/staging/comedi/drivers/ni_6527.c b/drivers/staging/comedi/drivers/ni_6527.c
index 14e716e99a5..54741c9e1af 100644
--- a/drivers/staging/comedi/drivers/ni_6527.c
+++ b/drivers/staging/comedi/drivers/ni_6527.c
@@ -527,3 +527,7 @@ static void __exit driver_ni6527_cleanup_module(void)
527 527
528module_init(driver_ni6527_init_module); 528module_init(driver_ni6527_init_module);
529module_exit(driver_ni6527_cleanup_module); 529module_exit(driver_ni6527_cleanup_module);
530
531MODULE_AUTHOR("Comedi http://www.comedi.org");
532MODULE_DESCRIPTION("Comedi low-level driver");
533MODULE_LICENSE("GPL");
diff --git a/drivers/staging/comedi/drivers/ni_65xx.c b/drivers/staging/comedi/drivers/ni_65xx.c
index 8b8e2aaf77f..403fc0997d3 100644
--- a/drivers/staging/comedi/drivers/ni_65xx.c
+++ b/drivers/staging/comedi/drivers/ni_65xx.c
@@ -871,3 +871,7 @@ static void __exit driver_ni_65xx_cleanup_module(void)
871 871
872module_init(driver_ni_65xx_init_module); 872module_init(driver_ni_65xx_init_module);
873module_exit(driver_ni_65xx_cleanup_module); 873module_exit(driver_ni_65xx_cleanup_module);
874
875MODULE_AUTHOR("Comedi http://www.comedi.org");
876MODULE_DESCRIPTION("Comedi low-level driver");
877MODULE_LICENSE("GPL");
diff --git a/drivers/staging/comedi/drivers/ni_660x.c b/drivers/staging/comedi/drivers/ni_660x.c
index 6612b085c4e..ca2aeaa9449 100644
--- a/drivers/staging/comedi/drivers/ni_660x.c
+++ b/drivers/staging/comedi/drivers/ni_660x.c
@@ -1421,3 +1421,7 @@ static int ni_660x_dio_insn_config(struct comedi_device *dev,
1421 }; 1421 };
1422 return 0; 1422 return 0;
1423} 1423}
1424
1425MODULE_AUTHOR("Comedi http://www.comedi.org");
1426MODULE_DESCRIPTION("Comedi low-level driver");
1427MODULE_LICENSE("GPL");
diff --git a/drivers/staging/comedi/drivers/ni_670x.c b/drivers/staging/comedi/drivers/ni_670x.c
index e9f034efdc6..d8d91f90060 100644
--- a/drivers/staging/comedi/drivers/ni_670x.c
+++ b/drivers/staging/comedi/drivers/ni_670x.c
@@ -384,3 +384,7 @@ static int ni_670x_find_device(struct comedi_device *dev, int bus, int slot)
384 mite_list_devices(); 384 mite_list_devices();
385 return -EIO; 385 return -EIO;
386} 386}
387
388MODULE_AUTHOR("Comedi http://www.comedi.org");
389MODULE_DESCRIPTION("Comedi low-level driver");
390MODULE_LICENSE("GPL");
diff --git a/drivers/staging/comedi/drivers/ni_pcidio.c b/drivers/staging/comedi/drivers/ni_pcidio.c
index 84a15c34e48..005d2fe86ee 100644
--- a/drivers/staging/comedi/drivers/ni_pcidio.c
+++ b/drivers/staging/comedi/drivers/ni_pcidio.c
@@ -1354,3 +1354,7 @@ static void __exit driver_pcidio_cleanup_module(void)
1354 1354
1355module_init(driver_pcidio_init_module); 1355module_init(driver_pcidio_init_module);
1356module_exit(driver_pcidio_cleanup_module); 1356module_exit(driver_pcidio_cleanup_module);
1357
1358MODULE_AUTHOR("Comedi http://www.comedi.org");
1359MODULE_DESCRIPTION("Comedi low-level driver");
1360MODULE_LICENSE("GPL");
diff --git a/drivers/staging/comedi/drivers/ni_pcimio.c b/drivers/staging/comedi/drivers/ni_pcimio.c
index 23a38124728..9148abdad07 100644
--- a/drivers/staging/comedi/drivers/ni_pcimio.c
+++ b/drivers/staging/comedi/drivers/ni_pcimio.c
@@ -1853,3 +1853,7 @@ static int pcimio_dio_change(struct comedi_device *dev,
1853 1853
1854 return 0; 1854 return 0;
1855} 1855}
1856
1857MODULE_AUTHOR("Comedi http://www.comedi.org");
1858MODULE_DESCRIPTION("Comedi low-level driver");
1859MODULE_LICENSE("GPL");
diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 6b8fd0c2b0d..a7f7819cc3b 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -238,6 +238,7 @@ static void netvsc_linkstatus_callback(struct hv_device *device_obj,
238 if (status == 1) { 238 if (status == 1) {
239 netif_carrier_on(net); 239 netif_carrier_on(net);
240 netif_wake_queue(net); 240 netif_wake_queue(net);
241 netif_notify_peers(net);
241 } else { 242 } else {
242 netif_carrier_off(net); 243 netif_carrier_off(net);
243 netif_stop_queue(net); 244 netif_stop_queue(net);
diff --git a/drivers/staging/intel_sst/intelmid_v2_control.c b/drivers/staging/intel_sst/intelmid_v2_control.c
index e38e89df6e8..e2f6d6a3c85 100644
--- a/drivers/staging/intel_sst/intelmid_v2_control.c
+++ b/drivers/staging/intel_sst/intelmid_v2_control.c
@@ -874,7 +874,10 @@ static int nc_set_selected_input_dev(u8 value)
874 sc_access[3].reg_addr = 0x109; 874 sc_access[3].reg_addr = 0x109;
875 sc_access[3].mask = MASK6; 875 sc_access[3].mask = MASK6;
876 sc_access[3].value = 0x00; 876 sc_access[3].value = 0x00;
877 num_val = 4; 877 sc_access[4].reg_addr = 0x104;
878 sc_access[4].value = 0x3C;
879 sc_access[4].mask = 0xff;
880 num_val = 5;
878 break; 881 break;
879 default: 882 default:
880 return -EINVAL; 883 return -EINVAL;
diff --git a/drivers/staging/lirc/lirc_zilog.c b/drivers/staging/lirc/lirc_zilog.c
index 3fe5f416019..0aad0d7a74a 100644
--- a/drivers/staging/lirc/lirc_zilog.c
+++ b/drivers/staging/lirc/lirc_zilog.c
@@ -495,7 +495,7 @@ static int send_data_block(struct IR_tx *tx, unsigned char *data_block)
495/* send boot data to the IR TX device */ 495/* send boot data to the IR TX device */
496static int send_boot_data(struct IR_tx *tx) 496static int send_boot_data(struct IR_tx *tx)
497{ 497{
498 int ret; 498 int ret, i;
499 unsigned char buf[4]; 499 unsigned char buf[4];
500 500
501 /* send the boot block */ 501 /* send the boot block */
@@ -503,7 +503,7 @@ static int send_boot_data(struct IR_tx *tx)
503 if (ret != 0) 503 if (ret != 0)
504 return ret; 504 return ret;
505 505
506 /* kick it off? */ 506 /* Hit the go button to activate the new boot data */
507 buf[0] = 0x00; 507 buf[0] = 0x00;
508 buf[1] = 0x20; 508 buf[1] = 0x20;
509 ret = i2c_master_send(tx->c, buf, 2); 509 ret = i2c_master_send(tx->c, buf, 2);
@@ -511,7 +511,19 @@ static int send_boot_data(struct IR_tx *tx)
511 zilog_error("i2c_master_send failed with %d\n", ret); 511 zilog_error("i2c_master_send failed with %d\n", ret);
512 return ret < 0 ? ret : -EFAULT; 512 return ret < 0 ? ret : -EFAULT;
513 } 513 }
514 ret = i2c_master_send(tx->c, buf, 1); 514
515 /*
516 * Wait for zilog to settle after hitting go post boot block upload.
517 * Without this delay, the HD-PVR and HVR-1950 both return an -EIO
518 * upon attempting to get firmware revision, and tx probe thus fails.
519 */
520 for (i = 0; i < 10; i++) {
521 ret = i2c_master_send(tx->c, buf, 1);
522 if (ret == 1)
523 break;
524 udelay(100);
525 }
526
515 if (ret != 1) { 527 if (ret != 1) {
516 zilog_error("i2c_master_send failed with %d\n", ret); 528 zilog_error("i2c_master_send failed with %d\n", ret);
517 return ret < 0 ? ret : -EFAULT; 529 return ret < 0 ? ret : -EFAULT;
@@ -523,8 +535,8 @@ static int send_boot_data(struct IR_tx *tx)
523 zilog_error("i2c_master_recv failed with %d\n", ret); 535 zilog_error("i2c_master_recv failed with %d\n", ret);
524 return 0; 536 return 0;
525 } 537 }
526 if (buf[0] != 0x80) { 538 if ((buf[0] != 0x80) && (buf[0] != 0xa0)) {
527 zilog_error("unexpected IR TX response: %02x\n", buf[0]); 539 zilog_error("unexpected IR TX init response: %02x\n", buf[0]);
528 return 0; 540 return 0;
529 } 541 }
530 zilog_notify("Zilog/Hauppauge IR blaster firmware version " 542 zilog_notify("Zilog/Hauppauge IR blaster firmware version "
@@ -827,7 +839,15 @@ static int send_code(struct IR_tx *tx, unsigned int code, unsigned int key)
827 zilog_error("i2c_master_send failed with %d\n", ret); 839 zilog_error("i2c_master_send failed with %d\n", ret);
828 return ret < 0 ? ret : -EFAULT; 840 return ret < 0 ? ret : -EFAULT;
829 } 841 }
830 ret = i2c_master_send(tx->c, buf, 1); 842
843 /* Give the z8 a moment to process data block */
844 for (i = 0; i < 10; i++) {
845 ret = i2c_master_send(tx->c, buf, 1);
846 if (ret == 1)
847 break;
848 udelay(100);
849 }
850
831 if (ret != 1) { 851 if (ret != 1) {
832 zilog_error("i2c_master_send failed with %d\n", ret); 852 zilog_error("i2c_master_send failed with %d\n", ret);
833 return ret < 0 ? ret : -EFAULT; 853 return ret < 0 ? ret : -EFAULT;
diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c
index 1017d6df17d..5fdf9d2fc95 100644
--- a/drivers/staging/zram/zram_drv.c
+++ b/drivers/staging/zram/zram_drv.c
@@ -230,6 +230,7 @@ static void zram_read(struct zram *zram, struct bio *bio)
230 230
231 if (zram_test_flag(zram, index, ZRAM_ZERO)) { 231 if (zram_test_flag(zram, index, ZRAM_ZERO)) {
232 handle_zero_page(page); 232 handle_zero_page(page);
233 index++;
233 continue; 234 continue;
234 } 235 }
235 236
@@ -238,12 +239,14 @@ static void zram_read(struct zram *zram, struct bio *bio)
238 pr_debug("Read before write: sector=%lu, size=%u", 239 pr_debug("Read before write: sector=%lu, size=%u",
239 (ulong)(bio->bi_sector), bio->bi_size); 240 (ulong)(bio->bi_sector), bio->bi_size);
240 handle_zero_page(page); 241 handle_zero_page(page);
242 index++;
241 continue; 243 continue;
242 } 244 }
243 245
244 /* Page is stored uncompressed since it's incompressible */ 246 /* Page is stored uncompressed since it's incompressible */
245 if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) { 247 if (unlikely(zram_test_flag(zram, index, ZRAM_UNCOMPRESSED))) {
246 handle_uncompressed_page(zram, page, index); 248 handle_uncompressed_page(zram, page, index);
249 index++;
247 continue; 250 continue;
248 } 251 }
249 252
@@ -322,6 +325,7 @@ static void zram_write(struct zram *zram, struct bio *bio)
322 mutex_unlock(&zram->lock); 325 mutex_unlock(&zram->lock);
323 zram_stat_inc(&zram->stats.pages_zero); 326 zram_stat_inc(&zram->stats.pages_zero);
324 zram_set_flag(zram, index, ZRAM_ZERO); 327 zram_set_flag(zram, index, ZRAM_ZERO);
328 index++;
325 continue; 329 continue;
326 } 330 }
327 331