瀏覽代碼

Merge tag 'staging-3.16-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging

Pull staging driver bugfixes from Greg KH:
 "Here are some tiny staging driver bugfixes that I've had in my tree
  for the past week that resolve some reported issues.  Nothing major at
  all, but it would be good to get them merged for 3.16-rc8 or -final"

* tag 'staging-3.16-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
  staging: vt6655: Fix disassociated messages every 10 seconds
  staging: vt6655: Fix Warning on boot handle_irq_event_percpu.
  staging: rtl8723au: rtw_resume(): release semaphore before exit on error
  iio:bma180: Missing check for frequency fractional part
  iio:bma180: Fix scale factors to report correct acceleration units
  iio: buffer: Fix demux table creation
Linus Torvalds 11 年之前
父節點
當前提交
ecb679fc2c

+ 5 - 3
drivers/iio/accel/bma180.c

@@ -68,13 +68,13 @@
 /* Defaults values */
 /* Defaults values */
 #define BMA180_DEF_PMODE	0
 #define BMA180_DEF_PMODE	0
 #define BMA180_DEF_BW		20
 #define BMA180_DEF_BW		20
-#define BMA180_DEF_SCALE	250
+#define BMA180_DEF_SCALE	2452
 
 
 /* Available values for sysfs */
 /* Available values for sysfs */
 #define BMA180_FLP_FREQ_AVAILABLE \
 #define BMA180_FLP_FREQ_AVAILABLE \
 	"10 20 40 75 150 300"
 	"10 20 40 75 150 300"
 #define BMA180_SCALE_AVAILABLE \
 #define BMA180_SCALE_AVAILABLE \
-	"0.000130 0.000190 0.000250 0.000380 0.000500 0.000990 0.001980"
+	"0.001275 0.001863 0.002452 0.003727 0.004903 0.009709 0.019417"
 
 
 struct bma180_data {
 struct bma180_data {
 	struct i2c_client *client;
 	struct i2c_client *client;
@@ -94,7 +94,7 @@ enum bma180_axis {
 };
 };
 
 
 static int bw_table[] = { 10, 20, 40, 75, 150, 300 }; /* Hz */
 static int bw_table[] = { 10, 20, 40, 75, 150, 300 }; /* Hz */
-static int scale_table[] = { 130, 190, 250, 380, 500, 990, 1980 };
+static int scale_table[] = { 1275, 1863, 2452, 3727, 4903, 9709, 19417 };
 
 
 static int bma180_get_acc_reg(struct bma180_data *data, enum bma180_axis axis)
 static int bma180_get_acc_reg(struct bma180_data *data, enum bma180_axis axis)
 {
 {
@@ -376,6 +376,8 @@ static int bma180_write_raw(struct iio_dev *indio_dev,
 		mutex_unlock(&data->mutex);
 		mutex_unlock(&data->mutex);
 		return ret;
 		return ret;
 	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
 	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
+		if (val2)
+			return -EINVAL;
 		mutex_lock(&data->mutex);
 		mutex_lock(&data->mutex);
 		ret = bma180_set_bw(data, val);
 		ret = bma180_set_bw(data, val);
 		mutex_unlock(&data->mutex);
 		mutex_unlock(&data->mutex);

+ 1 - 1
drivers/iio/industrialio-buffer.c

@@ -966,7 +966,7 @@ static int iio_buffer_update_demux(struct iio_dev *indio_dev,
 
 
 	/* Now we have the two masks, work from least sig and build up sizes */
 	/* Now we have the two masks, work from least sig and build up sizes */
 	for_each_set_bit(out_ind,
 	for_each_set_bit(out_ind,
-			 indio_dev->active_scan_mask,
+			 buffer->scan_mask,
 			 indio_dev->masklength) {
 			 indio_dev->masklength) {
 		in_ind = find_next_bit(indio_dev->active_scan_mask,
 		in_ind = find_next_bit(indio_dev->active_scan_mask,
 				       indio_dev->masklength,
 				       indio_dev->masklength,

+ 3 - 1
drivers/staging/rtl8723au/os_dep/usb_intf.c

@@ -530,8 +530,10 @@ int rtw_resume_process23a(struct rtw_adapter *padapter)
 	pwrpriv->bkeepfwalive = false;
 	pwrpriv->bkeepfwalive = false;
 
 
 	DBG_8723A("bkeepfwalive(%x)\n", pwrpriv->bkeepfwalive);
 	DBG_8723A("bkeepfwalive(%x)\n", pwrpriv->bkeepfwalive);
-	if (pm_netdev_open23a(pnetdev, true) != 0)
+	if (pm_netdev_open23a(pnetdev, true) != 0) {
+		up(&pwrpriv->lock);
 		goto exit;
 		goto exit;
+	}
 
 
 	netif_device_attach(pnetdev);
 	netif_device_attach(pnetdev);
 	netif_carrier_on(pnetdev);
 	netif_carrier_on(pnetdev);

+ 1 - 1
drivers/staging/vt6655/bssdb.c

@@ -981,7 +981,7 @@ start:
 		pDevice->byERPFlag &= ~(WLAN_SET_ERP_USE_PROTECTION(1));
 		pDevice->byERPFlag &= ~(WLAN_SET_ERP_USE_PROTECTION(1));
 	}
 	}
 
 
-	{
+	if (pDevice->eCommandState == WLAN_ASSOCIATE_WAIT) {
 		pDevice->byReAssocCount++;
 		pDevice->byReAssocCount++;
 		/* 10 sec timeout */
 		/* 10 sec timeout */
 		if ((pDevice->byReAssocCount > 10) && (!pDevice->bLinkPass)) {
 		if ((pDevice->byReAssocCount > 10) && (!pDevice->bLinkPass)) {

+ 5 - 2
drivers/staging/vt6655/device_main.c

@@ -2318,6 +2318,7 @@ static  irqreturn_t  device_intr(int irq,  void *dev_instance) {
 	int             handled = 0;
 	int             handled = 0;
 	unsigned char byData = 0;
 	unsigned char byData = 0;
 	int             ii = 0;
 	int             ii = 0;
+	unsigned long flags;
 
 
 	MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
 	MACvReadISR(pDevice->PortOffset, &pDevice->dwIsr);
 
 
@@ -2331,7 +2332,8 @@ static  irqreturn_t  device_intr(int irq,  void *dev_instance) {
 
 
 	handled = 1;
 	handled = 1;
 	MACvIntDisable(pDevice->PortOffset);
 	MACvIntDisable(pDevice->PortOffset);
-	spin_lock_irq(&pDevice->lock);
+
+	spin_lock_irqsave(&pDevice->lock, flags);
 
 
 	//Make sure current page is 0
 	//Make sure current page is 0
 	VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel);
 	VNSvInPortB(pDevice->PortOffset + MAC_REG_PAGE1SEL, &byOrgPageSel);
@@ -2560,7 +2562,8 @@ static  irqreturn_t  device_intr(int irq,  void *dev_instance) {
 	if (byOrgPageSel == 1)
 	if (byOrgPageSel == 1)
 		MACvSelectPage1(pDevice->PortOffset);
 		MACvSelectPage1(pDevice->PortOffset);
 
 
-	spin_unlock_irq(&pDevice->lock);
+	spin_unlock_irqrestore(&pDevice->lock, flags);
+
 	MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE);
 	MACvIntEnable(pDevice->PortOffset, IMR_MASK_VALUE);
 
 
 	return IRQ_RETVAL(handled);
 	return IRQ_RETVAL(handled);