提交 ecb679fc 编写于 作者: L Linus Torvalds

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
...@@ -68,13 +68,13 @@ ...@@ -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 { ...@@ -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, ...@@ -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);
......
...@@ -966,7 +966,7 @@ static int iio_buffer_update_demux(struct iio_dev *indio_dev, ...@@ -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,
......
...@@ -530,8 +530,10 @@ int rtw_resume_process23a(struct rtw_adapter *padapter) ...@@ -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);
......
...@@ -981,7 +981,7 @@ BSSvSecondCallBack( ...@@ -981,7 +981,7 @@ BSSvSecondCallBack(
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)) {
......
...@@ -2318,6 +2318,7 @@ static irqreturn_t device_intr(int irq, void *dev_instance) { ...@@ -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) { ...@@ -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) { ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册